我上传了一个文件到服务器后,因为我遇到了这个错误,我已经被困在这段代码上好几天了。它是一个在Apache上运行的Windows服务器
尝试了各种解决方案,但仍然收到错误。我尝试将完整权限更改为该服务器上的所有人。
我将默认的PHP上传tmp文件更改为我的应用程序内部但我仍然遇到此错误。
警告:move_uploaded_file(C:\ My_Workspace \ ojs2002)[function.move-uploaded-file]:无法打开流:第78行的C:\ My_Workspace \ ojs \ admin \ include \ fileupload.php中的权限被拒绝< / p>
警告:move_uploaded_file()[function.move-uploaded-file]:无法在C:\ My_Workspace中将'C:\ My_Workspace \ ojs \ tmp \ phpCB78.tmp'移动到'C:\ My_Workspace \ ojs2002'第78行的ojs \ admin \ include \ fileupload.php
// 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上运行不正常。
非常感谢任何帮助。谢谢。
答案 0 :(得分:0)
chmod
无法在Windows上运行,因为它使用不同类型的权限系统。确保用户Apache运行时对您尝试将文件移动到的文件夹具有完全写入权限(右键单击并单击共享或权限,具体取决于Windows的版本)
答案 1 :(得分:0)
我决定改用:
move_uploaded_file($uploaded_file, $file_path);
到
file_put_contents($file_path, file_get_contents($uploaded_file));
@unlink($uploaded_file);
unlink
可能会失败,但我并不太担心。