2011-12-17 124 views
4

我一直在使用自动上传HTML5/JS的图像文件,并使用PHP脚本将其保存在本地主机(在/ var/WWW /),但我不能保存。当_FILES对象中存在对象时,函数move_uploaded_file总是返回false。我是一个新手在PHP中:如何将上传的文件保存在本地主机上?

$target = "upload/"; 
    if(!empty($_FILES)) 
    { 
    if(move_uploaded_file($_FILES['image_file']['tmp_name'], $target)) 
    { 
    echo "The file ". basename($_FILES['image_file']['name']). " has been uploaded..."; 
    } 
    else { 
    echo "Sorry, there was a problem uploading your file. {$error}"; 
    } 
    } 
    else 
    { 
    echo "_files is empty"; 
    } 
+0

转! – 2011-12-17 13:32:06

+0

问题是move_uploaded_file的第二个参数 - 见我的回答 – SlavaNov 2011-12-17 13:36:18

+0

可能已经阅读move_uploaded_file的文档... :) – Corbin 2011-12-17 13:51:13

回答

5

尝试

move_uploaded_file($_FILES['image_file']['tmp_name'], $target.$_FILES['image_file']['name']) 

因为你需要指定文件的名称,不仅目录。

请参阅从PHP documentation

<?php 
$uploads_dir = '/uploads'; 
foreach ($_FILES["pictures"]["error"] as $key => $error) { 
    if ($error == UPLOAD_ERR_OK) { 
     $tmp_name = $_FILES["pictures"]["tmp_name"][$key]; 
     $name = $_FILES["pictures"]["name"][$key]; 
     move_uploaded_file($tmp_name, "$uploads_dir/$name"); 
    } 
} 
?> 
+0

谢谢您的回答。 我希望这个问题应该已经解决了,但它仍然在那里,我按你的答案已经改变了我的代码,但我不能看到我的上传文件夹中的文件。 更多暗示? – 2011-12-17 13:47:22

+0

改变了代码,请看看现在的工作(tmp_name的值来命名) – SlavaNov 2011-12-17 14:03:19

+0

还是它的一样,当我打印通过_FILES名或文件的大小[“IMAGE_FILE”] [“名”]它显示我正确的名字,这意味着我在我的PHP页面获取文件对象。 – 2011-12-17 14:31:32

0

例尝试错误报告此

if(is_uploaded_file($_FILES['image_file']['tmp_name'])) 
    { 
     move_uploaded_file($_FILES['image_file']['tmp_name'], $target.$_FILES['image_file']['name']); 
    echo "The file ". basename($_FILES['image_file']['name']). " has been uploaded..."; 
    } 
相关问题