Jump to content
  • 0

Не грузятся файлы с разрешением JPG


fiver
 Share

Question

Здравствуйте.

Через форму загружаю фотки на сайт. Но фотки с разрешением JPG не грузятся.

Что и как происходит.

Форма:

Изображение: <input type='file' name='image'>

Из нее передается методом POST на обработчик


if (!empty($_FILES['image']['tmp_name']))
{ фотка есть }
else почему то нет??!!!

В общем если файл имеет вид name.jpg , то - фотка есть.

А если файл name.JPG , то - почему то нет??!!!

Как решить проблему?

Link to comment
Share on other sites

22 answers to this question

Recommended Posts

  • 0

хм... , возможно в этом move_uploaded_file причина?


<form action="upload.php" method="post" name="form" ENCTYPE="multipart/form-data">
<input type="file" size="32" name="image">
<input type="submit" value="загрузить">
</form>


$uploaddir = 'foto/';
$uploadfile = $uploaddir.basename($_FILES['image']['name']);
if (move_uploaded_file($_FILES['image']['tmp_name'], $uploadfile)) {
echo "Изображение УСПЕШНО загружено.\n<br>";
} else {
echo "Изображение НЕ ЗАГРУЖЕНО!\n<br>";
}

хотя впервые слышу такую проблему.

Link to comment
Share on other sites

  • 0

хм... , возможно в этом move_uploaded_file причина?


<form action="upload.php" method="post" name="form" ENCTYPE="multipart/form-data">
<input type="file" size="32" name="image">
<input type="submit" value="загрузить">
</form>


$uploaddir = 'foto/';
$uploadfile = $uploaddir.basename($_FILES['image']['name']);
if (move_uploaded_file($_FILES['image']['tmp_name'], $uploadfile)) {
echo "Изображение УСПЕШНО загружено.\n<br>";
} else {
echo "Изображение НЕ ЗАГРУЖЕНО!\n<br>";
}

хотя впервые слышу такую проблему.

Сделал один в один как в твоем коде.

Выбираю name.JPG - Изображение НЕ ЗАГРУЖЕНО!

Выбираю name.jpg - Изображение УСПЕШНО загружено.

Прямо чудеса какие то!

Link to comment
Share on other sites

  • 0

Нашел в чем дело было.

Просто с разрешением JPG были фотки с фотика с минимальным размером в 5 Мб, а с jpg были все фотки до 2-х метров.

В общем я маленькую фотку переименовал в в JPG и о чудо, она загрузилась.

Тут меня и осенила, я сразу в php.ini, а там max_size = 2 MБ

:)

Link to comment
Share on other sites

  • 0

У меня тут возник другой вопрос.

Хорошо, если файл маленький.

А вот как загрузить например видео файл размером в 200 мегабайт?

загрузка занимает продолжительное время, и нельзя, что бы выкладывающий закрыл окно браузера.

Надо как то объявить, что сейчас идет загрузка, а вот теперь файл успешно загружен.

У кого есть опыт реализации, поделитесь ПОЖАЛУЙСТА.

Знаю что на форуме много отзывчивых людей, поэтому заранее ОГРОМНОЕ СПАСИБО!

Link to comment
Share on other sites

  • 0
прогресс-бар это разве не фича js, ну и может быть html5?
Как же с помощью js узнать, сколько файла передалось? А вот перл вроде как умеет принимать файл и в процессе отдавать данные о прогрессе.
Link to comment
Share on other sites

  • 0

велосипедисты, блин :)

http://www.plupload.com/

http://blueimp.github.com/jQuery-File-Upload/

при нужных настройках позволяют загружать файлы любым объемом, по кусочкам (chunks), показывая прогресс бар с помощью HTML5+JS либо флеш

Plupload по умолчанию используется движком WordPress уже долгое время

прогресс-бар это разве не фича js, ну и может быть html5?
Как же с помощью js узнать, сколько файла передалось? А вот перл вроде как умеет принимать файл и в процессе отдавать данные о прогрессе.

это называется File API, поддерживается не всеми браузерами, но все же

либо костыль - посылается файл кусочками, при каждом запросе php отдает размер загруженных частей, сверяя с общим размером файла, и отдает этот размер в запросе во время отправки следующего кусочка, так делает narod.ru, если смотреть на запросы во время передачи файла

Edited by NeoXidizer
Link to comment
Share on other sites

  • 0

http://www.w3.org/TR/FileAPI/

доступа к файлам нет, возможность узнать информацию о загруженных файлах через форму - есть

http://caniuse.com/fileapi

Firefox 3.6+, Chrome 13+, Opera 11.1+, Safari 5.1+ частично

для остальных браузеров есть другие методы, либо надпись "Не закрывайте вкладку браузера" :)

Link to comment
Share on other sites

  • 0

да, сервисов полно, но как я понял автору самому хотелось разобраться, выше Лунатик кинул ссылку, еще в качестве сервиса можно вот этим воспользоваться: http://digitarald.de/project/fancyupload/

Link to comment
Share on other sites

  • 0

Нашел прикольный загрузчик на jquery.

И полоска загрузки есть, и проверяет формат файла и максимальные размер, и дает еще ткстовую информацию, что куда грузится, сколько уже, сколько осталось, скорость загрузки и подводит еще итоги.

Link to comment
Share on other sites

  • 0

Народ, есть вот такой код, он позволяет красиво загружать видео на сервер.

Все как бы работает. Но мне надо добавить всего одну фенечку.

Маленький php скриптик.

if(видео файл успешно загрузился)

{

$query = "INSERT INTO .... "

}

Вся проблемма в том, как высчитать условие успешной загрузки.

Я пока не разобрался, но знающему челу тут решение на 5 секунд.


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Загрузка видео на сервер</title>
<link href="css/default.css" rel="stylesheet" type="text/css" />
<link href="css/uploadify.css" rel="stylesheet" type="text/css" />
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script type="text/javascript" src="scripts/swfobject.js"></script>
<script type="text/javascript" src="scripts/jquery.uploadify.v2.1.0.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$("#uploadify").uploadify({
'uploader' : 'scripts/uploadify.swf', // Относительный путь к файлу uploadify.swf. По умолчанию uploadify.swf
'script' : 'scripts/uploadify.php', // Относительный путь uploadify.php. По умолчанию uploadify.php. Это скрипт - загрузчик. Обязательно посмотрите его
'cancelImg' : 'scripts/cancel.png', // Относительный путь до картинки cancel.png. По умолчанию cancel.png
'folder' : 'uploads', // Путь к папке, в которой Вы хотите сохранять загружаемые файлы.
//Эту настройку можно опустить, тогда папку загрузки необходимо определить в uploadify.php
//Помните! На большистве хостингов, папка, в которую Вы пытаетесь загрузить файлы должна быть доступна на запись, не забудьте выставить соответствующие права
'queueID' : 'fileQueue', // ID элемента, в котором будет показываться очередь загрузки
'queueSizeLimit' : '10', // Лимит очереди (максим. число загруж файлов). По умолчанию 999
'auto' : true, // Если истина, загрузка начнется сразу после выбора файлов
'multi' : true, // Если истина, то разрешена загрузка нескольких файлов
'fileDesc' : 'только видео flv', // Текст, который будет внизу появляющегося диалогового окна. Без этого параметра будет написано "Все файлы('.')"
'fileExt' : '*.flv; *.FLV;', // разрешенные к загрузке файлы (остальные вдиалолговом окне будути скрыты)
'sizeLimit' : 128000000, // Макс. Размер файла для каждой загрузки (в байтах). Если не указываем, ограничено будет только настройками Вашего сервера
'simUploadLimit' : 1, // Ограничение на кол-во одновременных закачек. По умолчанию 1. Если значение равно 1, то загружаться будет 1 файл, а остальные будут стоять за ним в очереди. Если 2 - два загружаются, остальные ждут их и т.д
'buttonText' : 'File', // Текст на кнопке. По умолчанию BROWSE. К сожалению русскийтекст не поддрживается
'buttonImg' : 'scripts/btn.png', // Путь до картинки, которая будет служить кнопкой. Компенсирует недостаток предыдущей. Если эта настройка указана, предыдущая будет проигнорирована
'width' : 255,
'height' : 87,
// 'onInit' : alert('Скрипт готов!'),// Функция, которая срабатывает, когда скрипт будет загружен. По умолчанию обработчик событий скрывает целевой элемент на странице и заменяет его с флэш-файл, затем создает очереди контейнера после него.
/*
'onSelect' : function(event, queueID, fileObj){ // Функция, которая сработает, при выборе каждого файла. Пример:
var string = 'Имя фала: ' + fileObj.name +'\n';
string += 'Размер файла: ' + fileObj.size + 'байт\n';
string += 'Тип: ' + fileObj.type + '\n';
string += 'ID в очереди: ' + queueID +'\n'; // уникальный ID файла, генерируется скриптом
alert(string)
},
'onSelectOnce' : function(event, data){ //Функция, которая вызывается один раз для каждой операции выбора.
var string = 'Файлов в очереди: ' + data.fileCount +'\n';
string += 'Было выбрано файлов: ' + data.filesSelected +'\n';
string += 'Заменено файлов в очереди: ' + data.filesReplaced +'\n';
string += 'Итоговый вес файлов в очереди: ' + data.allBytesTotal +'\n';
alert(string);
},
*/
'onProgress' : function(event, queueID, fileObj, data){ // Срабатываети каждый раз в ходе изменений во време загрузки
var string = 'Загружаем: ' + fileObj.name +'<br />';
string += 'Размер: ' + fileObj.size +'<br />';
string += 'Тип: ' + fileObj.type +'<br />';
string += 'загрузка текущего файла: ' + data.percentage +'%<br />';
string += 'загружено байт текущего файла: ' + data.bytesLoaded +'<br />';
string += 'загружено байт всей очереди: ' + data.allBytesLoaded +'<br />';
string += 'скорость загрузки, KB/s: ' + data.speed +'<br />';
$('#info,#info2').show();
$('#info').html(string);
},
'onComplete' : function(event, queueID, fileObj, response, data){ // Срабатывает когда файл загружен на сервер. По умолчанию файл удаляется из очереди, но мы можем и добваить свои какие-либо действия
var string = 'Загружен файл: ' + fileObj.name +'<br />';
string += 'Путь до файла: ' + fileObj.filePath +'<br />';
string += 'Размер, байт: ' + fileObj.size +'<br />';
string += 'Тип: ' + fileObj.type +'<br />';
string += 'Пришел ответ от сервера: ' + response +'<br />';
string += 'Файлов в очереди: ' + data.fileCount +'<br />';
string += 'скорость загрузки, KB/s: ' + data.speed +'<br />';

$('#info2').append('<br />Фаил ' + fileObj.name + ' загружен!<br />');

},
'onAllComplete' : function(event, data){ // Срабатывает когда все загрузки завершены
var string = 'Загружено файлов: ' + data.filesUploaded +'\n';
string += 'Ошибок: ' + data.errors +'\n';
string += 'Всего загружено kбайт: ' + data.allBytesLoaded/1024 +'\n';

$('#info,#info2').fadeOut(10000, function() { $('#info,#info2').html('');}); // Плавно прячем информационные блоки и затем очищаем их
}



});


});
</script>
</head>

<body>
<div id="demo">

<h3>Загрузка файлов на сервер:</h3>
<div id="fileQueue"></div>
<input type="file" name="uploadify" id="uploadify" />

<div id="info"></div>
<div id="info2"></div>

</div>
</body>
</html>

Link to comment
Share on other sites

  • 0

Я пока не разобрался, но знающему челу тут решение на 5 секунд.

Я смотрю аппетит на подобные "халявные" вопросы все растет?

Почти 90% твоих постов однотипные - помогите, заранее спасибо... а учиться не пробовал? а где свои наработки?

Link to comment
Share on other sites

  • 0

Я пока не разобрался, но знающему челу тут решение на 5 секунд.

Я смотрю аппетит на подобные "халявные" вопросы все растет?

Почти 90% твоих постов однотипные - помогите, заранее спасибо... а учиться не пробовал? а где свои наработки?

Конечно же я учусь. И не задаю один вопрос дважды. Что то я могу разрешить самостоятельно, что то я спрошу.

Случается что сначала спрошу потом допру сам.

Что то для меня черный ящик. Я не знаю принципа работы, но знаю как подать и что будет на выходе и этим пользуюсь.

Но поменять в нем что либо бессилен в данный момент по ряду причин, нет необходимых знаний и нет времени их приобрести.

Собственно и вопросы задаю что бы научиться у знающих людей.

Если тебя напрягают мои вопросы можешь на них не отвечать.

Если тебя напрягаю я своими тупыми вопросами и жаждой халявы, то ты же модератор.

Удали пост, забань меня.

Даже не обижусь, пойду доставать людей например на woweb

uploadify.php в студию!

Спасибо за конкретную помощь. :)

Просмотрев этот файл убил разом двух зайцев.

В нем то родимом все и надо делать и брать условие успешной загрузки и там же можно переименовать файл перед загрузкой на сервер.

Link to comment
Share on other sites

  • 0

Конечно же я учусь. И не задаю один вопрос дважды. Что то я могу разрешить самостоятельно, что то я спрошу.

Случается что сначала спрошу потом допру сам.

Что то для меня черный ящик. Я не знаю принципа работы, но знаю как подать и что будет на выходе и этим пользуюсь.

Но поменять в нем что либо бессилен в данный момент по ряду причин, нет необходимых знаний и нет времени их приобрести.

Собственно и вопросы задаю что бы научиться у знающих людей.

Если тебя напрягают мои вопросы можешь на них не отвечать.

Если тебя напрягаю я своими тупыми вопросами и жаждой халявы, то ты же модератор.

Удали пост, забань меня.

Даже не обижусь, пойду доставать людей например на woweb

Я не просто так написал, когда не знаешь с какой стороны подступиться к скрипту - учи и читай книжки.

Удалять посты и тем более банить мне тебя не зачем, да и не за что... пока.

Link to comment
Share on other sites

  • 0

Я не просто так написал, когда не знаешь с какой стороны подступиться к скрипту - учи и читай книжки.

Удалять посты и тем более банить мне тебя не зачем, да и не за что... пока.

И я не просто так написал. Ты вроде уже взрослый человек. За 30 перевалил. Веди себя соответственно.

Есть что сказать по существу темы, скажи. Нечего сказать, или нет желания промолчи, тебя никто не обязывает всем помогать.

Форум дело добровольное. Он затем и создан, что бы одни спрашивали, а другие по мере желания отвечали за простое спасибо.

А поучать кому что и как делать, оценивать степень вопросов и чужие аппетиты не стоит.

Надеюсь мы поняли друг друга, и разговор на этом закончим.

Link to comment
Share on other sites

  • 0

Веди себя соответственно.

?

А поучать кому что и как делать, оценивать степень вопросов и чужие аппетиты не стоит.

Надеюсь мы поняли друг друга, и разговор на этом закончим.

не вопрос, буду иметь ввиду.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy