我有一个非常简单的照片上传器,需要一些提升速度
首先,当页面加载时,即使框中没有任何内容,也会出现回声?
if($_POST['upload']) {
if($_FILES['image']['name'] == "")
{
#there's no file name return an error
echo "\n<b>Please select a file to upload!\n</b>";
exit;
}
#we have a filename, continue
}
#directory to upload to
$uploads = '/home/habbonow/public_html/other/quacked/photos';
$usruploads = 'photos';
#allowed file types
$type_array = array('image/gif','image/pjpeg','image/x-png');
if(!in_array($_FILES['image']['type'], $type_array))
{
#the type of the file is not in the list we want to allow
echo "\n<b>That file type is not allowed!\n</b>";
exit;
}
页面输出显示上传框,但也回显“不允许使用该文件类型!”即使我没有点击按钮。
其次,jpg的mime类型是什么,因为我有jpeg和pjpeg。
谢谢,感谢任何帮助。
答案 0 :(得分:1)
我还建议将所有内容放在POST块中,否则无论何时加载页面都会对其进行评估。
对于mimetypes,有一个方法image_type_to_mime_type,它允许你传入一个表示给定文件类型的常量,并为它返回正确的mimetype,例如:
$type_array = array(image_type_to_mime_type(), image_type_to_mime_type(IMAGETYPE_GIF), image_type_to_mime_type(IMAGETYPE_PNG), 'image/pjpeg');
(因为pjpeg没有它自己的常量,我们可以手动添加它)
答案 1 :(得分:0)
如果您还没有提交表单,我认为!inarray调用很可能会返回false,因为$ _FILES ['images']不存在。
为此,我很想将所有内容放在第一个if语句中:
if($_POST['upload']) {
if($_FILES['image']['name'] == "")
{
#there's no file name return an error
echo "\n<b>Please select a file to upload!\n</b>";
exit;
}
#we have a filename, continue
#directory to upload to
$uploads = '/home/habbonow/public_html/other/quacked/photos';
$usruploads = 'photos';
#allowed file types
$type_array = array('image/gif','image/pjpeg','image/x-png');
if(!in_array($_FILES['image']['type'], $type_array))
{
#the type of the file is not in the list we want to allow
echo "\n<b>That file type is not allowed!\n</b>";
exit;
}
}