Я пробовал почти все, что доступно в Интернете, но ничего не работает.Загрузите несколько файлов с помощью AJAX и сервлета
У меня есть код filerader HTML5, который доставит мне все файлы, прочитанные из каталога на стороне клиента. var f = $('#fileUpload')[0].files;
. Следующее, что я хочу загрузить все эти файлы с помощью запроса AJAX на метод POST-сервлета JAVA. за что я пытался ниже code-
var data = new FormData();
$.each(f, function(key, value)
{
data.append(key, value);
});
postFilesData(data);
//some code..
function postFilesData(data)
{
$.ajax({
url: 'serv2',
type: 'POST',
//enctype: 'multipart/form-data',
data: data,
cache: false,
processData: false,
mimetyep: 'multipart/form-data',
contentType: 'multipart/form-data',
success: function(data)
{
//success
},
error: function(textStatus)
{
console.log('ERRORS: ' + textStatus);
}
});
}
сервлет кода doPOst
ме-System.out.println("Hi what request:"+ServletFileUpload.isMultipartContent(request));
System.out.println("hi bro");
// awsUpload.uploadData(foldername);
System.out.println("outside aws");
DiskFileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);
String uuidValue = "";
FileItem itemFile = null;
try {
// parses the request's content to extract file data
List formItems = upload.parseRequest(request);
Iterator iter = formItems.iterator();
// iterates over form's fields to get UUID Value
while (iter.hasNext()) {
FileItem item = (FileItem) iter.next();
if (item.isFormField()) {
}
// processes only fields that are not form fields
if (!item.isFormField()) {
itemFile = item;
}
}
}
catch (Exception e) {
// TODO: handle exception
}
//System.out.println(path);
// response.sendRedirect(path+"/user"+"/home.html");
// System.out.println("done");
if(itemFile==null)
{
System.out.println("File Empty Found");
}
System.out.println("The File Name is"+itemFile.getName());
}
HTML код:
<form method="POST" enctype="multipart/form-data" >
<input type="file" class="input-file" name="file[]" id="fileUpload"
onchange="fileChanged();" multiple mozdirectory=""
webkitdirectory="" directory=""/> <br/>
печатает "пустой файл Found" и падает на ниже линии с NullPointerException , Я понимаю, что он не получает никаких данных. Не могли бы вы указать фрагмент кода, который неверен или отсутствует код, который необходимо добавить.
Существует много возможностей, которые можно было бы отлаживать и прибивать гвоздями, но вы не сказали ни слова/подробностей об этом. Поработайте над этим первым и уменьшите вопрос к этому. Например, это многопользовательский контент? Включен ли цикл while? Неужели нет исключения? (ваш код имеет пустой блок catch, который игнорирует любое исключение и продолжает код, как будто ничего необычного не произошло). – BalusC
Почему голос? – tanmayub