Php 为什么move_上传的_文件不起作用?
每当我试图移动一个文件,它不工作,并显示“图像文件未上传”。。。我只是想知道错误在哪里Php 为什么move_上传的_文件不起作用?,php,file-upload,file-io,Php,File Upload,File Io,每当我试图移动一个文件,它不工作,并显示“图像文件未上传”。。。我只是想知道错误在哪里 $target = '/var/www/student/public/myimage.jpg'; $destination = '/var/www/student/public/images/myimage.jpg'; if( move_uploaded_file( $target, $destination ) ) { echo "Image file is successfully loaded
$target = '/var/www/student/public/myimage.jpg';
$destination = '/var/www/student/public/images/myimage.jpg';
if( move_uploaded_file( $target, $destination ) ) {
echo "Image file is successfully loaded";
} else {
echo "Image file not uploaded.";
}
- 我检查了错误日志(
),但没有找到任何东西tail-f/var/log/apache2/error.log
- 目标和目标目录都具有777权限
$target = '/var/www/student/public/myimage.jpg';
$destination = '/var/www/student/public/images/myimage.jpg';
if (copy($target, $destination)) {
unlink($target);
} else {
echo "Unable to copy $target to $destination.";
}
文件是否已在当前请求中上载
移动上传的文件
将拒绝移动未上传的文件。(即,$target
必须等于$\u文件[$field\u name]['tmp\u name']
如果之前已经上传过,move\u uploaded\u file
将拒绝工作(如果它仍然存在,如果你没有处理上传的文件,如果我没记错的话,PHP将删除它)
如果它实际上不是随此请求一起上载的文件,则您需要使用
rename
如果您不使用HTTP POST upload方法,则可以使用rename()
您实际使用的代码是什么?您提供的代码显然不起作用,因为目标必须通过PHP的HTTP POST上载机制上载。为什么这个标记为zend framework?而您使用的函数是错误的。请阅读其中的PHP文档().File已由其他脚本上载,我正在将此文件移动到服务器中的其他文件夹…@Student您不能使用move_uploaded_File来移动其他上载的内容。您必须按照下面的建议使用重命名。甚至还有一个优化版本。名为。-1:要移动文件,请使用
重命名()
,而不是复制()
。在大型文件上,两者之间有很大区别。rename()
只需修改文件表以指向新位置;copy()
创建文件的全新副本。复制是一个有效选项,因为有时您对文件只有读取权限。重命名对具有读取权限的文件不起作用。我遇到过这样的情况:除非我具有根访问权限,否则无法授予对文件的权限。如果文件已上载到另一页,则它将已被删除当你尝试调用此文件时,它会被删除,move\u uploaded\u file
将拒绝工作,即使它仍然在那里。你必须在上传文件的请求中处理上传的文件,否则如果我记得正确,PHP将删除它。是的。文件已经通过其他脚本上传到服务器。我正在移动它。谢谢
rename($target, $destination);