0

当我将文件上传到服务器时遇到此错误时,我已经被此代码困住了好几天。它是在 Apache 上运行的 Windows 服务器

尝试了各种解决方案,但仍然收到错误。我尝试将完全权限更改为该服务器上的每个人。

我将默认的 PHP 上传 tmp 文件更改为我的应用程序内部,但我仍然遇到此错误。

警告:move_uploaded_file(C:\My_Workspace\ojs2002) [function.move-uploaded-file]:未能打开流:C:\My_Workspace\ojs\admin\include\fileupload.php 中的权限被拒绝,第 78 行

警告:move_uploaded_file() [function.move-uploaded-file]:无法将 'C:\My_Workspace\ojs\tmp\phpCB78.tmp' 移动到 C:\My_Workspace\ojs\admin 中的 'C:\My_Workspace\ojs2002' \include\fileupload.php 在第 78 行

 // copy the file, making the destination directory if necessary
 $filedir = 'C:/My_Workspace/ojs2002/'.basename($_FILES['articlefile']['name']);


 chmod($_FILES["articlefile"]["tmp_name"], 0777);
 chmod($filedir, 0777 );        

 move_uploaded_file($_FILES["articlefile"]["tmp_name"],$filedir);

该代码在 Linux 服务器上可以正常工作,但在 Windows 上不行。

任何帮助将不胜感激。谢谢你。

4

2 回答 2

1

我决定从:

move_uploaded_file($uploaded_file, $file_path);

file_put_contents($file_path, file_get_contents($uploaded_file));
@unlink($uploaded_file);

可能会失败,unlink但我不太担心。

于 2014-08-26T12:10:02.470 回答
0

chmod不适用于 Windows,因为它使用不同类型的权限系统。确保用户 Apache 运行为对您尝试将文件移动到的文件夹具有完全写入权限(右键单击并单击共享或权限,具体取决于 Windows 版本)

于 2012-07-07T02:16:37.030 回答