Xmlhttprequest не получает ответа, когда это займет слишком много времени для завершения (readystate = 4 и status = 0)Html

Программисты Html
Ответить Пред. темаСлед. тема
Anonymous
 Xmlhttprequest не получает ответа, когда это займет слишком много времени для завершения (readystate = 4 и status = 0)

Сообщение Anonymous »

У меня есть проблема на моем веб -сайте, я использую форму, чтобы получить файл от пользователя, и если файл имеет определенный тип, он преобразуется в MP4 с помощью EXEC с FFMPEG. Однако, когда преобразование займет слишком много времени, чтобы выполнить запрос, не получает никакого ответа (даже если оно завершено в фоновом режиме) < /p>
Вот моя функция, которая содержит запрос: < /p>

Код: Выделить всё

uploadForm.onsubmit = event => {
event.preventDefault();
let formdata = new FormData(uploadForm);
let  request = new XMLHttpRequest();
request.open('POST', uploadForm.action);
request.upload.addEventListener('progress', function(e) {
var fileSize = formFile.files[0].size;
if (e.loaded 
А вот кусок PHP, который обрабатывает запрос: < /p>
$newname = pathinfo($filename, PATHINFO_FILENAME) . ".mp4";
$sql = "INSERT INTO videos (name, category, title, mail, comments, ipuser)
VALUES ('$newname', '$category', '$title', '$mail', '$comments', '$ipuser')";

try {
$conn->query($sql);
echo "Nouvel enregistrement dans la base de donnée réussi
";
} catch (Exception $e){
if (substr($e->getMessage(),0,9) == "Duplicate") {
die("Erreur: Ce nom de fichier existe déjà dans nos archives. Si vous êtes sûr que nous ne disposons pas déjà de ce fichier, merci de le renommer puis de réessayer.
");
} else {
die("Erreur: " . $e->getMessage(). "
Contactez l'administrateur
");
}
}

$moved = move_uploaded_file($_FILES['formFile']['tmp_name'], "../assets/videos/check/$filename");
$error = $_FILES['formFile']['error'];

if( $moved ) {
echo "Envoi réussi";
} else {
echo "Envoi échoué, veuillez contacter l'administrateur et lui donner le code d'erreur suivant : # $error
";
}

exec('ffmpeg -i "../assets/videos/check/' . $filename . '" "../assets/videos/check/' . $newname . '" && rm "../assets/videos/check/' . $filename . '"');
Весь процесс работает как предполагаемое, но когда преобразование FFMPEG требует слишком долго, запрос не получает ответа, не запускает функцию нагрузки и получает готовое участие в 4 с кодом состояния 0. Преобразование и удаление исходного файла работают. /> Я не много пробовал, я пытался посмотреть в Интернет для ответа, но это, кажется, первым, я попытался перенести загрузку нового тела Innerhtml в функцию Onload, как можно увидеть в моем коде, который вообще не вызывается, когда возникает проблема. Я попробовал с несколькими файлами (несколько AVI и MPG), все они работают нормально, за исключением действительно большого MPG, который конверсия занимает очень много времени, что вызывает проблему, с которой я сталкиваюсь.

Подробнее здесь: https://stackoverflow.com/questions/796 ... adystate-4
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Html»