问题: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