問題:move_uploaded_file:不允許使用tmp_name?
當您使用move_uploaded_file
函數時,是否可以保留在tmp_name
中創建的名稱?或者你必須總是把名字改成別的東西?
如果您可以保留您作爲tmp_name移動的文件的名稱,那麼您必須如何傳遞參數?我試了下面的代碼,我似乎無法讓它工作。
請參閱下面的代碼:。
if(isset($_POST['submit'])){
$tmp_file = $_FILES['file_upload']['tmp_name'];
$target_file = basename($_FILES['file_upload']['name']);
$upload_dir = "uploads";
if(move_uploaded_file($tmp_file, $upload_dir."/".$tmp_file)){
$message = "File uploaded successfully.";
}else{
$error = $_FILES['file_upload']['error'];
$message = $upload_errors[$error];
}
}
當我傳遞的第二個參數作爲$ upload_dir「/」 $ TARGET_FILE,似乎沒有要任何的問題,但是當我把它作爲$ upload_dir 「/」 $ tmp_file如上面的代碼,它不斷給我下面的錯誤:。
SCREAM:錯誤抑制忽略
Warning: move_uploaded_file(uploads/C:\wamp\tmp\php1EA0.tmp): failed to open stream: Invalid argument in C:\wamp\www\bb2\uploads.php on line 26
我知道該文件正在被移動,並且我認爲自從我創建以來不應該有任何問題一個變量已經:$ tmp_file = $ _FILES ['file_upload'] ['tmp_name']。我想我可以使用該變量作爲move_uploaded_file()函數中的第二個參數。我哪裏錯了? – 2013-05-13 21:02:21
嘗試使用'$ upload_dir。「/」。basename($ tmp_file)'$ tmp_file是該文件的完整路徑...您只需要我假設的名稱 – Orangepill 2013-05-13 21:05:31
您是否嘗試過輸出實際值'$ tmp_file'和'$ upload_dir。「/」。$ tmp_file'?我敢打賭,你會得到像'uploads \ C:\ wamp ...'這樣的東西。 – likeitlikeit 2013-05-13 21:06:13