由于参数无效,move_uploaded_file()无法打开流 - PHP

时间:2012-06-22 12:03:07

标签: php

我有这个代码将我上传的文件移动到特定目录:

if (isset($_FILES["image"]["name"])){ 
    if (!is_dir('pf/' . $uid)) {
        mkdir('pf/' . $uid);
        $large_image_location = "pf/" . $uid;
    }else {
        $large_image_location = "pf/" . $uid;
    }

    chmod ($large_image_location, 0777);
    move_uploaded_file("$userfile_tmp", "$large_image_location/$userfile_tmp");    

}

然而,这会产生以下错误:

( ! ) Warning: move_uploaded_file(pf/BfyhieniKJGGqTNm/C:\wamp\tmp\phpF08A.tmp) [function.move-uploaded-file]: failed to open stream: Invalid argument in C:\wamp\www\mingle\upload_dp.php on line 26

如何解决这个问题的任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:5)

这是你困难的90%:

 move_uploaded_file("$userfile_tmp", "$large_image_location/$userfile_tmp");

您在上传路径的开头使用移动到路径。尝试:

move_uploaded_file("$userfile_tmp", "$large_image_location/".$_FILES['image']['name']);

这应该会更好。

答案 1 :(得分:2)

错误本身很清楚,pf/BfyhieniKJGGqTNm/C:\wamp\tmp\phpF08A.tmp不是有效的文件名。

请勿更改$_FILES[n]['tmp_name'](或$userfile_tmp的内容),因为它始终包含上传文件的完整路径。