не работает upload в IE

lenarfate

Новичок
не работает upload в IE

ниже привел код загрузки картинки на сайт.в опере и лисе работает,а IE отказывается и пишет ошибку "Ошибка закачки файлов".ничего не понимаю(помогите




if($_GET['action']=="new")
{
if($_POST['do']=="")
{

print "<form action='?action=new' name='' method='post' enctype='multipart/form-data'>";
print "Название: <input type='text' name='name' value='' /><br />";
print "<input type='file' name='IMG' /><br />";
print "<input type='submit' name='do' value='Сохранить' />";
print "</form>";
}
else
{
$name=clear($_POST['name']);
if(upload($_FILES,$url))
{
$img_url=md5(basename($_FILES['IMG']['name']));
$res=mysql_query("INSERT INTO `".PREFIX."postphotos` SET `name`='".$name."', `img_url`='".$img_url."'", $sql);
if($res)
{
print "Изображение добавлено.<br /><a href='adm.php'>В админку</a><br />";
print "<a href='adm_photos.php'>В управление изображениями</a>";
}
else print "Ошибка записи в базу данных";
}
else print "Ошибка закачки файлов";
}
}
 

lenarfate

Новичок
что конкретно проверять с помощью isset()?

-~{}~ 13.09.09 16:59:

проверил с помощью $_FILES['IMG']['error'].ошибок нет.ничего не понимаю((
 

dimagolov

Новичок
lenarfate, а вообще что-то в $_FILES['IMG'] есть?

п.с. я бы не давал имя инпуту идентичное названию тега.
 

dimagolov

Новичок
lenarfate, что да? и что ты от нас ждешь по тому огрызку кода, который НИЧЕГО с собственно файлами не делает? как отлаживать написано в ссылке в первом ответе, смотри что происходит в ф-ии upload().
 

lenarfate

Новичок
пожалуйста функция

function upload($_FILES,$url,$maxsize=1024)
{
if(isset($_FILES['my_file']['name']))
{
if(is_uploaded_file($_FILES['my_file']['tmp_name']))
{
if($_FILES['my_file']['type']=="image/jpeg")
{
if($_FILES['my_file']['size']!=0 and $_FILES['my_file']['size']<=($maxsize*1024))
{
if(move_uploaded_file($_FILES['my_file']['tmp_name'], $url."/".md5(basename($_FILES['my_file']['name'])))) return true;
else return false;
}
else return false;
}
else return false;
}
else return false;
}
}

-~{}~ 13.09.09 18:37:

я изменил по вашему совету $_FILES['IMG'] на $_FILES['my_file']
 

dimagolov

Новичок
ну и? нам надо угадать что именно не нравится при загрузки из ИЕ? я то может и угадал, а ты вот сам возьми и разберись, по какой причине возвращается false, var_dump($_FILES) тебе в помощь, в нем все увидишь.
 

dimagolov

Новичок
lenarfate, ты русский язык понимаешь? у тебя ф-я upload проверяет массив $_FILES, вот по var_dump($_FILES) и смотри, что ей не нравится, почему она отдает false.

с какого бодуна ты выдумал var_dump($my_file)? у тебя же в коде его нигде нету.
 

lenarfate

Новичок
собственно говоря:

array(1) {
["my_file"]=>
array(5) {
["name"]=>
string(50) "32086.jpg"
["type"]=>
string(11) "image/pjpeg"
["tmp_name"]=>
string(18) "Z:\tmp\phpFFA0.tmp"
["error"]=>
int(0)
["size"]=>
int(35732)
}
}
 

dimagolov

Новичок
lenarfate, мысли есть? или думать ты не способен?

-~{}~ 13.09.09 12:14:

lenarfate, да, в этом. эту проверку надо вообще убрать, смысла в ней 0. кулхацкеры запишут тебе в 'type' все что угодно, а браузеры тоже могут писать то, что им нравится, а не то, что ты ожидаешь.
 

yok

Новичок
Всем привет.
По этой же теме пришел сюда.
В опере тип image/jpeg в IE image/pjpeg
А я по типу запускал imagecreatefromjpeg
обработку же запускать по типу, а если gif, или другое, тоесть мне необходимо знать тип !!!, или есть другой способ?

-~{}~ 21.09.09 11:45:

Вот читал есть такое
if(in_array($_FILES['image']['type'],array(
'image/jpeg', // Opera, FF
'image/jpg', // эт уже от себя добавил мало ли ))
'image/pjpeg'))){ // IE
Тоесть перебирать все возможные типы, и следовательно с другими форматами возможны различные типы.
А нет какого универсального способа?
 

kvf77

Red Devil
yok
нельзя определять картинку по типу, передаваемому браузером. А если я гив переименую в джипег, например?

правильнее действовать так:

PHP:
        list ($image_width, $image_height, $image_type) = @ GetImageSize($original);

        switch ($image_type) {
            case 1 :
                $src_img = ImageCreatefromGif($original);
                break;
            case 2 :
                $src_img = ImageCreatefromJpeg($original);
                break;
            case 3 :
                $src_img = ImageCreatefromPng($original);
                break;
            default :
                echo 'не поддерживаемый формат файла';
                return false;
        }
Все советы выше - просто бред, не обращайте на них внимания.
 
Сверху