Есть проблема, использую 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 в этом же файле сработала.
но .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);
и все заработало. Даже и не знаю почему, может кто объяснит.