我当前的代码(不工作):
<label for="homepage"><h3>Home Page Image</h3></label><input type="hidden" name="MAX_FILE_SIZE" value="300000" /><input type="file" name="homepage" />
<?php
$tmp_name = $_FILES['homepage']['tmp_name'];
$file_type= $_FILES['homepage']['type'];
$name = strtolower($_POST['title']) . ".png";
$upload_dir = "/slideshow/";
$file_path = "$upload_dir/$name";
list($width, $height, $type, $attr)=getimagesize("$tmp_name");
if(isset($_POST['submit']) && $file_type == "image/png" && $width==800 && $height==250)
{
move_uploaded_file($tmp_name, "$upload_dir/$name");
}
elseif((isset($_POST['submit']) && ($file_type != "image/png" || $width!=800 || $height!=250)))
{
echo "<div class=\"errorcheck\">Please select an image that meets the requirements. </div>";
echo "$width $height $type";
}
?>
</br>
返回“警告:move_uploaded_file(slideshow / test.png)[function.move-uploaded-file]:无法打开流:第93行/home/xxx/xxx/back_end/add.php中的权限被拒绝警告: move_uploaded_file()[function.move-uploaded-file]:无法在第93行的/home/xxx/xxx/back_end/add.php中将'/ tmp / phpGXQv9g'移动到'slideshow / test.png'“
我是初学者所以请以简单的方式解释谢谢。
答案 0 :(得分:0)
这里的问题(我认为)就是你引用$ tmp_name变量的方式。
它不应该是双引号。或者应该是这样的
...getimagesize("${tmp_name}");
答案 1 :(得分:0)
您几乎没有错误处理,请按照php.net上的建议进行操作:
http://www.php.net/manual/en/features.file-upload.post-method.php
首先,为了调试至少打印出$_FILES
数组:
echo 'Here is some more debugging info:';
print_r($_FILES);
答案 2 :(得分:0)
在您尝试回显并在函数中使用变量时,可能会出现很多错误。这样做并使用引号中的$变量调用它们时,您将其编码为设置字符串而不是变量。例如:
$foo = 'bar';
echo $foo;
Result: bar
$foo = 'bar';
echo '$foo';
Result: $foo
答案 3 :(得分:0)
尝试改变这个:
$name = strtolower($_POST['title']) . ".png";
$upload_dir = "/slideshow/";
$file_path = "$upload_dir/$name";
到此:
$file_path = $upload_dir."/".$name;
和
move_uploaded_file($tmp_name, "$upload_dir/$name");
到此:
move_uploaded_file($tmp_name, $file_path);
当你使用标签时不要忘记标签......否则它不会提交POST方法的值。