我以前成功使用了move_uploaded_file,但是我遇到了一个问题,我相信我正在测试这个新服务器。我已经为要通过FTP移动的上传创建了一个名为“uploads”的文件夹。这是显示权限的屏幕截图:
每个人都有读/写访问权限,但是当我上传文件时,我在将文件移动到“uploads”目录的行上收到错误:
if (move_uploaded_file($_FILES['photo1']['tmp_name'], $upload_directory.$uploadedFile)) {
该文件未移至“uploads”文件夹并查看服务器日志,我可以看到如下条目:
PHP的[1344] PHP警告:move_uploaded_file(uploads / 2.jpg):无法打开流:第206行的C:\ Program Files \ FileMaker \ FileMaker Server \ HTTPServer \ conf \ test_upload \ index.php中的权限被拒绝 PHP警告:move_uploaded_file():无法在C:\ Program Files \ FileMaker \ FileMaker Server \ HTTPServer \ conf \ test_upload \ index中将'C:\ Windows \ Temp \ php2D93.tmp'移动到'uploads / 2.jpg'。第206行的PHP
如果所有用户都对“uploads”文件夹进行了读/写/执行,我看不出它是如何成为权限问题的?以下是变量:
$ upload_directory = '上传/'; $ uploadedFile = $ _FILES ['photo1'] ['name'];
答案 0 :(得分:0)
uploads/2.jpg
似乎是$_FILES['photo1']['tmp_name']
,因此应该已上传到服务器的/tmp/
目录。在大多数系统上,由于/tmp
是系统目录,因此它具有对其的限制权限。
看看您是否可以更改/tmp
上的权限,或者在"上传"之前,确切地找到哪个 dir将tmp上传文件移到第一位? (然后改变那个 dir的烫发)。
无论如何,传递给move_uploaded_file()
的文件路径看起来并不正确。它需要是一条完整的道路。您发现的服务器错误可能不会在上传操作发生的同时正好发生。
答案 1 :(得分:0)
我无法通过FTP设置修复此问题。我必须通过登录到Windows Server并更改我试图将文件移入的文件夹的安全设置来调整设置,以便“用户”具有读/写访问权限。