上传图片文件错误

Posted

技术标签:

【中文标题】上传图片文件错误【英文标题】:uploading image file error 【发布时间】:2013-09-22 03:59:59 【问题描述】:

当我尝试上传文件时,此 php 脚本正在重新调整错误。我在 win xp 机器上使用 XAMPP。我相信我已经正确设置了共享权限。

脚本:

//For images
if (isset($_FILES['image300x100']) && !empty($_FILES['image300x100']['tmp_name'])) 

    $name = $_FILES['image300x100']['name']; // getting the name of the file
    $tempName = $_FILES['image300x100']['tmp_name']; // getting the temporary file name.
    $allowedExt = array('jpg', 'jpeg', 'png', 'gif' );// specifying the allowed extentions
    $a = explode('.', $name);
    $fileExt = strtolower(end($a)); unset($a);//
    $fileSize = $_FILES['image300x100']['size'];

    $filePath = "";
    switch($category)
        case 1 : $filePath = "c:/www/Perspect/categories/politics/articleImages"; break;
        //etc etc etc
    

    $path = $filePath;

 else
    $errors[] = 'no file selected';


$moveResult = move_uploaded_file($tempName, $filePath);

留下的错误是:

Warning: move_uploaded_file(): The second argument to copy() function cannot be a     directory in C:\www\Dev\admin\addNewArticle.php on line 62
Warning: move_uploaded_file(): Unable to move 'C:\Server\XAMPP\tmp\php62C.tmp' to 'c:/www/Dev/categories/bla/articleImages' in C:\www\Dev\admin\addNewArticle.php on line 62

我从我认为正确的路径中删除了c:/,但结果如下:

temp nameC:\Server\XAMPP\tmp\php62E.tmp filepath     
www/Dev/categories/bla/articleImages
Warning: move_uploaded_file(www/Dev/categories/bla/articleImages): failed to open stream: No such file or directory in C:\www\Dev\admin\addNewArticle.php on line 62

Warning: move_uploaded_file(): Unable to move 'C:\Server\XAMPP\tmp\php62E.tmp' to 'www/Dev/categories/bla/articleImages' in C:\www\Dev\admin\addNewArticle.php on line 62

非常感谢任何帮助

【问题讨论】:

【参考方案1】:

您需要指定目标文件名,例如:

$filePath = "c:/www/Perspect/categories/politics/articleImages/file.png";

或者,您可以生成一个随机名称。

【讨论】:

我会给它一个特定于图像大小的名称,但我可以将文件名附加到移动函数而不是路径中吗? 我想我意识到我做错了,我在重复一些早期的代码,该代码使用了附加文件名的函数。德普[ @SteveGreen 是的,您可以将其附加到 move 函数中。现在可以用了吗? 我刚刚改了:$moveResult = move_uploaded_file($tempName, $filePath."testFile.png");它正在工作,除了文件显示为 0 字节。 感谢您的帮助和 cmets,工作正常。只需要附加名称等,但这应该相当简单。【参考方案2】:

正如错误所说,第二个参数是目录,而不是文件。您需要将文件名添加到目标路径。

【讨论】:

以上是关于上传图片文件错误的主要内容,如果未能解决你的问题,请参考以下文章

上传图片文件错误

ASP上传图片提示文件名重复?

图片上传错误无法打开流:没有这样的文件或目录

上传图片过大时nginx报错

创建团队的时候上传图片显示HTTPStatus500错误如何办

百度 Ueditor 在线编辑器 无法上传图片或者文件 提示上传错误