Re: [請益] 檔案上傳成功,但找不到暫存檔
※ 引述《GoodTauSo (一再的失敗...)》之銘言:
: 試了很多方法,都是回傳成功,但找不到暫存檔.
: 大致上就是以下寫法
: if (move_uploaded_file($_FILES['thefile']['tmp_name'],
: $_FILES['thefile']['name']))
: {
: print '<p>successfully uploaded</p>';
: print $trgt;
: } else
: 略...
: }
: echo "Select a file:";
: echo "<form action='unit2.php' enctype='multipart/form-data' method='post'>
: <p><br />
: <input type='hidden' name='MAX_FILE_SIZE' value='10000000' />
: <input type='file' name='thefile' /><br /><br />
: <input type='submit' name='submit' value='Upload !' />
: </p>
: </form>
: </body>
: </html>"
: 隨便丟了一個小txt檔,執行後,顯示successfully uploaded
: 可是到$_FILES['thefile']['tmp_name']找不到暫存檔.
: 是php.ini設定問題嗎?
$result = move_uploaded_file($a, $b);
這指令可以判斷 $a 所指定的檔案是否透過正常標準的 upload 流程傳上來的
如果是,則搬移到 $b 指定的位址去
假設 $a 裡面存的路徑是 /etc/passwd 之類的位址,那怎麼辦?所以一般都會用 move_uploaded_file 這指令來檢查
(這只是假設.../etc/passwd非root是無法讀取的@@")
另外你有把 $_FILE 的變數印出來看過嗎
它應該會長的像這樣
[thefile] => Array
(
[name] => MyFile.jpg
[type] => image/jpeg
[tmp_name] => /tmp/php6hst32
[error] => UPLOAD_ERR_OK
[size] => 98174
)
你的程式寫這樣...
if (move_uploaded_file($_FILES['thefile']['tmp_name'], $_FILES['thefile']['name'])){
略...
}
所以執行的時候會變成這樣...
if (move_uploaded_file('/tmp/php6hst32', 'MyFile.jpg')){
略...
}
把 '/tmp/php6hst32' 這個暫存檔 移動到 'MyFile.jpg' 這裡...(沒帶路徑的結果會被搬到 PHP 執行工作目錄下面...)
所以通常會加上路徑,例如
if (move_uploaded_file($_FILES['thefile']['tmp_name'], '/var/www/hthocs/upload/'.$_FILES['thefile']['name'])){
略...
}
類似這樣...當然路徑要先檢查是否存在以及能否寫入之類的...這地方就不先說明了
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 111.250.168.178
推
10/12 18:20, , 1F
10/12 18:20, 1F
討論串 (同標題文章)
PHP 近期熱門文章
PTT數位生活區 即時熱門文章