Php move_uploaded_file:使用其他目录时没有此类文件
我用的是这个,他们用的是:Php move_uploaded_file:使用其他目录时没有此类文件,php,file,path,directory,move,Php,File,Path,Directory,Move,我用的是这个,他们用的是: move_uploaded_file($_FILES['file']['tmp_name'], 'uploads/' . $_FILES['file']['name']); 如果我在执行此代码的“php”目录中创建一个“uploads”目录,它的工作方式就像一个符咒 如果我尝试这样做: move_uploaded_file($_FILES['file']['tmp_name'], '../img/' . $_FILES['file']['name']); 我收到这
move_uploaded_file($_FILES['file']['tmp_name'], 'uploads/' . $_FILES['file']['name']);
如果我在执行此代码的“php”目录中创建一个“uploads”目录,它的工作方式就像一个符咒
如果我尝试这样做:
move_uploaded_file($_FILES['file']['tmp_name'], '../img/' . $_FILES['file']['name']);
我收到这样的警告:
我错过了什么?我也尝试过绝对路径
目录树:
scouter
-img
-php
-uplodas
-upload.php
“img”目录似乎具有所需的权限选项
编辑0: 如果我将文件放在
上传
目录中,然后使用重命名()
将文件放在img
目录中…无法获取发生的情况
编辑_1: HTML:
编辑2: 服务器响应,来自swidmann的回答:
您在HTML中使用了另一个名称,我不知怎么地怀疑,这以前是否有效,您的HTML:
<input id="input_pic" type='file' name='userFile'/>
我认为您的问题可能是上载大小,请尝试以下方法进行调试:
var_dump( $_FILES );
$upload = move_uploaded_file( $_FILES['file']['tmp_name'], dirname( dirname( __FILE__ ) ).'/img/'. $_FILES['file']['name'] );
var_dump( $upload );
var_dump( ini_get("upload_max_filesize") );// what is allowed and how big is your picture?
var_dump( $_FILES['file']['size'] );// if this is 0, maybe your allowed upload size is to low
顺便说一句,我试了一下,效果很好:
dirname( dirname( __FILE__ ) ).'/img/'
要更改允许的上载大小,您必须更改以下选项:
在php.ini中设置upload_max_filesize
和post_max_size
; Maximum allowed size for uploaded files.
upload_max_filesize = 40M
; Must be greater than or equal to upload_max_filesize
post_max_size = 40M
如果一切正常,请尝试绝对路径:
move_uploaded_file( $_FILES['file']['tmp_name'], $_SERVER["DOCUMENT_ROOT"]."/test/scouter/img/".$_FILES['file']['name'] );
>我得到了警告警告文字是什么?请确保
img
目录权限-是否可写?您可以使用'./img/'$_文件['file']['name']
,一个点而不是两个..:对不起!是的@EkoJunaidiSalam没有任何区别,而警告信息现在只有一个点而不是两个点。:)你还需要另一个。/
@Fred ii-只是想说声谢谢你为堆栈中的每个人所做的一切。你把这堆东西做得更好。感激之情从未消失。它会上传到/uploads/
文件夹,但不会上传到。/img/
所以我不认为这是一个大小问题。图片总是一样的吗?你的表格在哪里,是包括upload.php还是上传到upload.php?嗨,我也不怀疑它的大小,因为Mi-C*说了什么,但我会看看你的答案。请检查我更新的问题中的HTML。@Mi Creative:路径不同,因为我添加了test
文件夹,该文件夹来自有效的错误消息:dirname(dirname(\uu文件))。/img/'
bravo!
var_dump( $_FILES );
$upload = move_uploaded_file( $_FILES['file']['tmp_name'], dirname( dirname( __FILE__ ) ).'/img/'. $_FILES['file']['name'] );
var_dump( $upload );
var_dump( ini_get("upload_max_filesize") );// what is allowed and how big is your picture?
var_dump( $_FILES['file']['size'] );// if this is 0, maybe your allowed upload size is to low
dirname( dirname( __FILE__ ) ).'/img/'
; Maximum allowed size for uploaded files.
upload_max_filesize = 40M
; Must be greater than or equal to upload_max_filesize
post_max_size = 40M
move_uploaded_file( $_FILES['file']['tmp_name'], $_SERVER["DOCUMENT_ROOT"]."/test/scouter/img/".$_FILES['file']['name'] );