2012-04-01 118 views
0
<? 
if(isset($_POST['submit'])){ 

$url = 'http://www.connectedcampus.org/ckeditor/images/uploads/'; 

if (($_FILES['upload'] == "none") OR (empty($_FILES['upload']['name']))) 
{ 
    $message = "No file uploaded."; 
} 
else if ($_FILES['upload']["size"] == 0) 
{ 
    $message = "The file is of zero length."; 
} 
else if (($_FILES['upload']["type"] != "image/pjpeg") AND ($_FILES['upload']["type"] != "image/jpeg") AND ($_FILES['upload']["type"] != "image/png")) 
{ 
    $message = "The image must be in either JPG or PNG format. Please upload a JPG or PNG instead."; 
} 
else if($_FILES["file"]["size"] > 1000000){ 
    $message = "File size too big!"; 
} 
else if(file_exists($url.$_FILES["file"]["name"])) 
    { 
    $message=$_FILES["file"]["name"] . " already exists. "; 
    } 
else if (!is_uploaded_file($_FILES['upload']["tmp_name"])) 
{ 
    $message = "Invalid File!"; 
} 
else { 
    $message = "success!"; 
    $move = move_uploaded_file($_FILES['upload']['tmp_name'], $url.$_FILES['upload']['name']); 
    echo $_FILES['upload']['tmp_name']."<br>"; 
    echo $url.$_FILES['upload']['name']; 
    if(!$move) 
    { 
    $message = "Error moving uploaded file."; 
    } 
    $url = $url.$_FILES['upload']['name']; 
} 
echo $message; 
</script>"; 
} 
?> 

这版画 “错误移动上传的文件” 这意味着move_uploaded_file($ _ FILES [ '上传'] [ 'tmp_name的值'],$网址。$ _ FILES [ '上传'] ['名']) 返回false。但我肯定是500%,我已经正确创建了http://www.connectedcampus.org/ckeditor/images/uploads/文件夹....那么为什么会出现错误?PHP图片上传奇怪的问题

好了,现在改为:

$url = 'bloguploads/'; 

    if (($_FILES['upload'] == "none") OR (empty($_FILES['upload']['name']))) 
    { 
     $message = "No file uploaded."; 
    } 
    else if ($_FILES['upload']["size"] == 0) 
    { 
     $message = "The file is of zero length."; 
    } 
    else if (($_FILES['upload']["type"] != "image/pjpeg") AND ($_FILES['upload']["type"] != "image/jpeg") AND ($_FILES['upload']["type"] != "image/png")) 
    { 
     $message = "The image must be in either JPG or PNG format. Please upload a JPG or PNG instead."; 
    } 
else if($_FILES["file"]["size"] > 1000000){ 
     $message = "File size too big!"; 
} 
else if(file_exists($url.$_FILES["file"]["name"])) 
    { 
     $message=$_FILES["file"]["name"] . " already exists. "; 
    } 
    else if (!is_uploaded_file($_FILES['upload']["tmp_name"])) 
    { 
     $message = "Invalid File!"; 
    } 
    else { 
     $message = ""; 
     $move = move_uploaded_file($_FILES['upload']['tmp_name'], $url.$_FILES['upload']['name']); 
     if(!$move) 
     { 
      $message = "Error moving uploaded file."; 
     } 
     $url = $url.$_FILES['upload']['name']; 
     } 
echo $message; 
</script>"; 
?> 

现在的问题是,它说: “已经存在”。为什么?我可以通过ftp客户端看到文件尚未上传

+2

读/写权限可能? – hjpotter92 2012-04-01 08:00:09

+0

@ hjpotter92 chmod($ _ FILES ['upload'] ['tmp_name'],777); $ message =“success!”; $ move = move_uploaded_file($ _ FILES ['upload'] ['tmp_name'],$ url。$ _ FILES ['upload'] ['name']); &更改上传文件夹的权限以及...没有任何作品 – 2012-04-01 08:23:28

+0

它说“已存在”,而不是“Filename.jpg已存在”的事实应该是一个提示... – 2012-04-01 10:05:46

回答

1

move_uploaded_file适用于文件系统,不适用于网址。

,而不是$url

move_uploaded_file($_FILES['upload']['tmp_name'], $url.$_FILES['upload']['name']); 

使用文件系统路径,即:

move_uploaded_file($_FILES['upload']['tmp_name'], "/home/www/uploads/".$_FILES['upload']['name']); 
+0

$ url ='/ ckeditor/images/uploads /'; 仍然显示错误上传文件! : -/ – 2012-04-01 08:22:56

+0

如果您尝试使用相对路径,请从头开始删除'/'。但更好的想法是花一些时间并了解绝对/相对路径,当前工作目录以及如何在PHP中处理它们。 – 2012-04-01 08:30:05

+0

请参阅上面问题中的编辑。我纠正了路径。 现在很奇怪它说“已经存在” – 2012-04-01 08:52:24