У меня был успех с uploadify , и я бы порекомендовал его. Это скрипт jQuery / Flash, который обрабатывает большие загрузки, и вы можете передать ему дополнительные параметры (например, секретный ключ). Чтобы решить проблемы на стороне сервера, просто используйте следующий код. Изменения вступают в силу только для сценария, в который они вызваны:
//Check to see if the key is there
if(!isset($_POST['secret_key']) || !isValid($_POST['secret_key']))
{
exit("Invalid request");
}
function isValid($key)
{
//Put your validation code here.
}
//This line changes the timeout.
//Give it a value in seconds (3600 = 1 hour)
set_time_limit(3600);
//Set these amounts to whatever you need.
ini_set("post_max_size","8192M");
ini_set("upload_max_filesize","8192M");
//Generally speaking, the memory_limit should be higher
//than your post size. So make sure that's right too.
ini_set("memory_limit","8200M");
РЕДАКТИРОВАТЬ В ответ на ваш комментарий:
Учитывая то, что вы сказали, я боюсь, что вы не сможете выполнить свои требования через http. Во всех решениях есть код, который добавляет функции в http, для которых он никогда не был разработан.
Как ты сам сказал, это простой протокол. Помимо написания собственного клиентского программного обеспечения, работающего вне браузера, Java-апплета или использования другого протокола (например, FTP, который был разработан для этого), вы можете не получить то, что хотите.
Я сделал все, что мог в данных ограничениях. Извините, я не мог сделать лучше.