所以我正面临这个问题,这是我在4年多的发展过程中从未有过的问题,
HTML代码
<fieldset id="step_3" style="display:none;">
<legend>3. Add Photos</legend>
<ol>
<li>
<label for="main_image">Main Image..</label>
<input type="file" name="extra_img0" size="35"/>
</li>
<li>
<label for="extra_img1">Extra Images</label>
<input type="file" name="extra_img1" size="35"/>
</li>
<li>
<label for="extra_img2"> </label>
<input type="file" name="extra_img2" size="35" />
</li>
<li>
<label for="extra_img3"> </label>
<input type="file" name="extra_img3" size="35"/>
</li>
<li>
<input type="submit" name="add" value="Add Listing"/>
</li>
</ol>
</fieldset>
PHP代码......
$i = 0;
while($i < 4) {
if(!empty($_FILES['extra_img'.$i]['name'])) {
if($_FILES['extra_img'.$i]['type'] == "image/gif" OR $_FILES['extra_img'.$i]['type'] == "image/png" OR $_FILES['extra_img'.$i]['type'] == "image/jpeg") {
$img = md5(microtime()).'.jpg';
$image = New SimpleImage();
$image->load($_FILES['extra_img'.$i][tmp_name]);
if($image->getWidth() < $image->getHeight()) {
$image->resizeToWidth("300");
$image->cutHeight("300");
} else {
$image->resizeToHeight("300");
$image->cutWidth("300");
}
$image->save('uploads/listings/large/'.$img);
$db->query("INSERT INTO `images_to_listing` (`listing_id` ,`name`) VALUES ('{$listing_id}', '{$img}');");
}
}
$i++;
}
代码在IE以外的所有浏览器中都运行良好吗?它甚至没有插入MYSQl,任何想法?
答案 0 :(得分:0)
看看是否有效:
// List of allowable file extensions
$allowedExtensions = array (
'jpg',
'jpeg',
'gif',
'png'
);
for ($i = 0; $i < 4; $i++) {
// Loop 0-3
if (!empty($_FILES["extra_img$i"]['name']) && in_array(strtolower(pathinfo($_FILES["extra_img$i"]['name'],PATHINFO_EXTENSION),$allowedExtensions))) {
// If you get here, the image is set and has a file extension specified as allowable above
$img = md5(microtime()).'.jpg';
$image = New SimpleImage();
$image->load($_FILES["extra_img$i"]['tmp_name']);
if ($image->getWidth() < $image->getHeight()) {
$image->resizeToWidth("300");
$image->cutHeight("300");
} else {
$image->resizeToHeight("300");
$image->cutWidth("300");
}
$image->save("uploads/listings/large/$img");
$db->query("INSERT INTO `images_to_listing` (`listing_id` ,`name`) VALUES ('{$listing_id}', '{$img}');");
} else {
// You may want to add error handling here
}
}
关键区别在于使用文件的扩展名,而不是它的MIME类型(依赖于浏览器是合理的)。