1. Загрузить файл на сервер
2. Запаковать его в архив
3. Сохранить файл в папке
Скачиваю с помощью curl
Вот собственно и сам код функции:
$ss = 'http://dl.zaycev.net/d04e7c3d-7de3-4879-bc95-27687155556f/28440/2844055/5sta_family_and_dj_pankratov_-_moya_melodiya.mp3';
$in = $db->getOne('SELECT ID_file FROM upload WHERE URL = ?s',$ss);
if (!empty($in)) {
$name = end(explode("/", $ss));
$name1 = explode(".", $name);
if (!empty($name) and !empty($name1[0])){
$path = '/'.$name;
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename='.$name);
$fp = fopen($path, 'w');
$ch = curl_init($ss);
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, false);
curl_setopt($ch, CURLOPT_BINARYTRANSFER, true);
curl_exec($ch);
curl_close($ch);
echo curl_errno($ch);
fclose($fp);
$file = file_get_contents($ss);
if (!empty($name1[0])){
$new_name = $name1[0].'['.date('d.m.Y').']'.rand(1, 9999).'.bz2';
$bz = bzopen('../dump_out/'.$new_name, 'w');
bzwrite($bz, $file);
bzclose($bz);
// unlink('../dump/'.$name);
$user = isLogin();
if ($user['is']) $id_u = $user['is']['id'];
else $id_u = 0;
$db->query("INSERT INTO upload (URL,name,ID_add) VALUES (?s,?s,?s)",$ss,$new_name,$id_u);
$ID_end = $db->getOne('SELECT ID_file FROM upload WHERE name = ?s',$new_name);
echo json_encode(array('mt'=>'file_suc','val'=>$ID_end));
} else exit(json_encode(array('mt'=>'error','val'=>'Ошибка 1')));
} else (json_encode(array('mt'=>'error','val'=>'Ошибка 2')));
} else echo json_encode(array('mt'=>'file_have','val'=>$in));
Проблема вот в чем, на локальном сервера все работает на Ура!, перенес все на хостинг и тут поехало... Когда код загружает страницу $ss, то как я понимаю он должен сохранять ее в файл, но он открывает ее в браузере, заканчивается мой код страницы и затем
<!DOCTYPE html>как можно решить это? Пробовал загружать и через гет контент, мув загрузку, copy(). Ничего не получается, везде такой же ответ. Возможно такое что хостинг запрещает мне что-то делать? если запрещает, то что мне им написать по этому поводу, на что ссылаться?
<html>
<head>
<meta content="text/html; charset=windows-1251" http-equiv="Content-Type"/>
<title>404 Мы не смогли найти файл, который вы запросили. Возможно он уже не существует.</title>
</head>
<body>
<div class="download-error">
<div class="download-error__text">
<h1>ТУТ ЗАЙЦЕВ НЕТ!</h1>
<p>
404 Мы не смогли найти файл, который вы запросили. Возможно он уже не существует.
</p>
<p>
Вернуться на <a href="http://zaycev.net/">главную страницу</a>.
</p>
</div>
</div>
</body>
</html>
{"mt":"file_suc","val":"67"}