kolya00736
Проверенные
- Сообщения
- 10
- Реакции
- 0
- Баллы
- 138
Пишу страницу для загрузки файла и дальнейшей работой с ним.
php-обработчик:
HTML-код шаблона:
При отправке ловлю ошибку 400. Если отправлять файл через форму (xf:form), то все работает. Подскажите как мне сделать загрузку с помощью AJAX?
php-обработчик:
PHP:
<?php
namespace test;
class test
{
public static function includeFile(\XF\Pub\Controller\Page $controller, \XF\Mvc\Reply\View &$view)
{
if($_FILES){
$view->setParam('myContent', 'test');
}
}
}
HTML-код шаблона:
HTML:
<div id="dropzone">
<h1 id="droptext">Drag and Drop file</h1>
</div>
{$myContent|raw}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script type="text/javascript">
$(function() {
var dropzone = $('#dropzone');
dropzone.on('dragover dragenter drop', function(e) { e.preventDefault(); e.stopPropagation(); });
dropzone.on('drop', function (e) {
e.stopPropagation();
e.preventDefault();
var file = e.originalEvent.dataTransfer.files;
var fd = new FormData();
fd.append('file', file[0]);
uploadFile(fd);
});
});
function uploadFile(file) {
$.ajax({
url: '{{ link('/test') }}',
type: 'post',
data: file,
contentType: false,
processData: false,
success: function(data) {
alert(data);
}
});
}
</script>
При отправке ловлю ошибку 400. Если отправлять файл через форму (xf:form), то все работает. Подскажите как мне сделать загрузку с помощью AJAX?