Move_uploaded_file()函数在Linux服务器上工作,但在Windows服务器上不工作


Move_uploaded_file() function working on Linux server but not on Windows server

我遇到问题。我创建了一个表格,人们可以从中申请工作。我有3个领域,我允许用户上传简历,参考资料和其他材料。这个表单在我的基于linux的服务器上运行得很好。当我把它上传到windows服务器时,我得到了以下错误:

Warning: move_uploaded_file(./application/D:'Temp'php'php945C.tmp_tumblr.png) [function.move-uploaded-file]: failed to open stream: Invalid argument in D:'Hosting'9664396'html'application.php on line 23
Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move 'D:'Temp'php'php945C.tmp' to './application/D:'Temp'php'php945C.tmp_tumblr.png' in D:'Hosting'9664396'html'application.php on line 23

如有任何帮助,我们将不胜感激。

这是代码:

if(isset($_FILES["photoToUpload"]['name'])){
        $original_img_name = $_FILES["photoToUpload"]['name'];
    } else {
        $original_img_name = "";
    }
    $the_photo_url="None Uploaded";
    if($original_img_name != ""){
        $target = './application/';
        $img_name = str_replace("&", "and", $original_img_name);
        $img_name = preg_replace('/[^.a-zA-Z'd's]+/s', '', $img_name);
        $img_name = str_replace('  ', ' ', $img_name);
        $img_name = str_replace(' ', '_', $img_name);
        $img_name = str_replace("/", "", $_FILES["photoToUpload"]['tmp_name']) . "_" . $img_name;
        move_uploaded_file($_FILES["photoToUpload"]['tmp_name'], $target . $img_name);
        $the_photo_url = $target . $img_name;
    }

这段代码在我的基于linux的主机上运行得很好。

下一行是错误的,您应该在将tmp_name添加到$img_name时将其删除。

$img_name = str_replace("/", "", $_FILES["photoToUpload"]['tmp_name']) . "_" . $img_name;