[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Проблема с закачкой фалов на сервер
Nixel
Привет всем! )
Есть проблема, использую php для закачки фалов на сервер.
Вот форма

<form action="upload.php" method="post" enctype="multipart/form-data">
New file<br /><input type="file" name="filename" /><br />
<input
type="submit" name="subfn" value="Change picture" />
</form>

А это скрипт

if($_FILES["filename"]["size"] > 1024*3*1024)
{
echo ("Размер файла превышает три мегабайта");
}
$newfile = md5($_FILES["filename"]["name"].(string)rand());
if(!(move_uploaded_file($_FILES["filename"]["tmp_name"],(string)$newfile))){
print ("Ошибка загрузки файла!");
}

А проблема вот в чем, при закачке бинарных данных, например картинок, фал становится битым, если скачать его обратно по FTP и открыть через HEX редактор то можно найти различия в исходном и закаченом файлах. А именно то что при закачке все байты 0x00 заменяются на 0x20. Закачка текстовых файлов происходит нормально.

Подскажите что я не так делаю ))
Заранее спасибо ))



Спустя 43 минуты, 36 секунд (16.11.2010 - 16:04) linker написал(а):
Попробуй .htaccess содержащий
CharsetRecodeMultipartForms Off
CharsetDisable on
в папку со скриптом.

Спустя 16 минут, 18 секунд (16.11.2010 - 16:20) Nixel написал(а):
Не помогло ((

Спустя 3 минуты, 57 секунд (16.11.2010 - 16:24) linker написал(а):
Если есть доступ к httpd.conf то вставляй туда.

Спустя 4 минуты, 44 секунды (16.11.2010 - 16:29) Nixel написал(а):
нет доступа.
но .htaccess точно работает, т.к. AddDefaultCharset windows-1251 в этом же файле сработала.

Спустя 41 минута, 39 секунд (16.11.2010 - 17:10) Nixel написал(а):
Поменял скрипт на

if($_FILES["filename"]["size"] > 1024*3*1024)
{
echo ("Размер файла превышает три мегабайта");
}
$nfile = $_FILES["filename"]["name"].(string)rand();
if(!(move_uploaded_file($_FILES["filename"]["tmp_name"],(string)$nfile))){
print ("Error!");
}
$newfile = md5($nfile);
rename($nfile, $newfile);

и все заработало. Даже и не знаю почему, может кто объяснит.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.