<?
session_start();
?>
<form enctype="multipart/form-data" method="post" id="uploadVideo">
<input type="hidden" id="progress" name="<?=ini_get("session.upload_progress.name"); ?>" value="123">
<input type="file" name="video[]" accept="video/avi, video/mp4, video/flv, video/mov, video/mkv, video/ogg, video/wmv, video/webm, video/ogv">
<button type="button" name="send" class="uploadVideoBtn">Загрузить</button>
</form>
Отправка данных на проверку php
$.ajax({
url: url
type: 'post',
dataType: 'json',
data: formData,
async: true,
cache: false,
contentType: false,
processData: false,
success: function(json){
if(typeof json.success !== 'undefined'){
$.jGrowl(json.success);
} else if(typeof json.error !== 'undefined'){
$.jGrowl(json.error);
}
},
error: function(json, jqXHR, status, errorThrown, exception){
alert(JSON.stringify(json));
return $.jGrowl('ОШИБКА AJAX запроса: ' + status, jqXHR, json);
}
});
getting_progress();
Второй ajax на php файл, проверяющий сессию
function getting_progress(){
var interval_id = setInterval(function () {
$.ajax({
url: url2,
type: "POST",
dataType: 'json',
async: true,
success: function(json){
if(typeof json.success !== 'undefined'){
$.jGrowl(json.success);
clearInterval(interval_id);
} else if(typeof json.error !== 'undefined'){
$.jGrowl(json.error);
}
},
error: function(json, jqXHR, status, errorThrown, exception){
alert(JSON.stringify(json));
return $.jGrowl('ОШИБКА AJAX запроса: ' + status, jqXHR, json);
}
});
}, 500);
}
// обработка файла
session_start();
if(!isset($_FILES['video']) || empty($_FILES['video'])){
echo json_encode(['error' => 'Не выбрано видео для загрузки'], JSON_UNESCAPED_UNICODE);
exit();
}
.......
echo json_encode(['success' => "Видео [$fileHumanName] загружено"], JSON_UNESCAPED_UNICODE);
// второй php файл, проверяющий сессию
session_start();
$key = ini_get("session.upload_progress.prefix") . '123';
if(isset($_SESSION[$key])){
echo json_encode(['error' => 'session exists'], JSON_UNESCAPED_UNICODE);
exit();
}
else{
echo json_encode(['error' => 'session does not exist'], JSON_UNESCAPED_UNICODE);
exit();
}
// всегда получаю ответ что такой ключ в сессии не существует
$.ajax({
url: url,
type: 'POST',
dataType: 'JSON',
data: formData,
async: true,
cache: false,
contentType: false,
processData: false,
success: function(json){
if(typeof json.success !== 'undefined'){
$.jGrowl(json.success);
} else if(typeof json.error !== 'undefined'){
$.jGrowl(json.error);
}
},
error: function(json, jqXHR, status, errorThrown, exception){
alert(JSON.stringify(json));
return $.jGrowl('ОШИБКА AJAX запроса: ' + status, jqXHR, json);
},
xhrFields: {
onprogress: function(event) {
console.log('Загружено на сервер ' + event.loaded + ' байт');
}
}
});