Я только что перешел из 000webhost (бесплатно) на GoDaddy (платные) серверов и до сих пор, как в 10 раз хуже, чем 000webhost>.>Загрузка файлов с помощью PHP скрипт
В любом случае, моя проблема с загрузки. Я использую следующий код, и он отлично работал на 000webhost, чтобы пользователи могли загружать rar-файлы, но теперь на godaddy, rar-файл возвратит конец ошибки архива. Я проверял через FTP, файлы не были повреждены в результате загрузки
<?php
$userAgent = $_SERVER['HTTP_USER_AGENT'];
$IP1 = $_SERVER['HTTP_X_FORWARDED_FOR'];
$IP2 = $_SERVER['REMOTE_ADDR'];
$HWID = $_GET['HWID'];
date_default_timezone_set('America/New_York');
$date = date("m/d/y g:i:sA", time());
$file = $_GET['file'];
file_put_contents('Logs/Downloaded.txt', "IP: " . $IP2 . " Downloaded On: " . $date . " File: " . $file . " User Agent: " . $userAgent . "\n", FILE_APPEND);
$path = "files/";
$fullPath = $path.$file;
if(file_exists($fullPath)){
if ($fd = fopen ($fullPath, "r")) {
$fsize = filesize($fullPath);
$path_parts = pathinfo($fullPath);
$ext = strtolower($path_parts["extension"]);
switch ($ext) {
case "pdf":
header("Content-type: application/pdf"); // add here more headers for diff. extensions
break;
case "zip":
header("Content-type: application/zip");
break;
default;
header("Content-type: application/octet-stream");
}
header("Content-Disposition: attachment; filename=\"".$path_parts["basename"]."\"");
header("Content-length: $fsize");
header("Cache-control: private"); //use this to open files directly
while(!feof($fd)) {
$buffer = fread($fd, 2048);
echo $buffer;
ob_flush();
flush();
}
}
fclose ($fd);
exit;
}else{
die("File could not be found");
}
?>
не часть вас проблема, но вы можете заменить вас буферизацией напишите вызовом fpassthru – Orangepill
У вас есть пробелы в конце? Newlines и т. Д.? –
Нет, я не @Bart Frienderichs – Richie