上传一张图片PHP(失败)
问题描述:
我试图建立一个表单上传缩略图(图像)到服务器 - 看起来像图像成功上传到服务器临时文件夹(我已经证实这与get_defined_vars
- 它给人一种临时文件名,并没有错误),但它没有被移动到文件夹中的DOCUMENT_ROOT
上传一张图片PHP(失败)
这里的最终目标是让然后上传图像返回URL存储在MySQL
HTML表格(位于DOCUMENT_ROOT/admin)
<form action="upload.php" method="post" enctype="multipart/form-data">
<label for="thumbnail">Thumbnail </label>
<input type="file" name="thumbnail" id="thumbnail">
</form>
upload.php的
<?php
$thumbnail = uploadfile($_FILE['thumbnail']['name'],$_SERVER['DOCUMENT_ROOT'].'/thumbs/upload/',$_FILE['thumbnail']['tmp_name']);
if(($thumbnail)!== FALSE)
{echo $thumbnail;} else {echo 'upload failed<br>';}
function uploadfile($origin, $dest, $tmp_name)
{
$origin = strtolower(basename($origin));
$fulldest = $dest.$origin;
$filename = $origin;
echo '$fulldest '.$fulldest.'<br />';
echo '$filename '.$filename.'<br />';
if (move_uploaded_file($tmp_name, $fulldest))
{return $filename;}
return false;
}
?>
结果(注:我已经删除了实际的文档根目录)
$fulldest [DOCUMENT_ROOT] /thumbs/upload/
$filename
upload failed
我还设置了500M上传一个.htaccess指令,以确保图像大小”不是个t问题
<IfModule mod_php4.c>
php_value upload_max_filesize 500M
php_value post_max_size 500M
</IfModule>
编辑::我的目标目录是chmod 0777测试 - 所以权限不应该是问题。
答
我不禁注意到你的$filename
是空的,$fulldest
缺少文件名。我认为问题在于你使用$_FILE
而不是$_FILES
。
$thumbnail = uploadfile($_FILES['thumbnail']['name'],
$_SERVER['DOCUMENT_ROOT'].'/thumbs/upload/',
$_FILES['thumbnail']['tmp_name']);
我认为这样会有效。
可能是目标目录的权限问题 – 2013-10-14 20:12:06
您正在运行Web服务器的用户将需要对目标目录的写入权限。检查您的权限。 – 2013-10-14 20:12:08
我的目录是0777,更新的原始文章包括这个 – Philippe