2012-04-06 2 views
0

У меня есть страница в моем веб-потоке, где я хочу загрузить файл, не обновляя страницу. Я попытался использовать для этого вызов Ajax, но не смог. Я не мог понять, как отправить данные в загруженном файле на серверную/заднюю часть для дальнейшей обработки. Я использую среду Spring MVC, и я не хочу использовать PHP.Загрузить содержимое локального файла без обновления страницы

Может ли кто-нибудь предложить решение или образец кода, с помощью которого я могу выполнить свою работу? Я очень новичок в JavaScript. более

Одно я должен вернуться на ту же страницу после перехода на стороне сервера, чтобы обработать загруженный файл и вернуться к той же странице со строкой с сервера side.all это происходит без обновления текущей страницы

Любое предложение будет высоко оценено.

+0

Google «HTML5 File API "-> http://www.html5rocks.com/en/tutorials/file/dndfiles/ – noob

+0

Просто используйте загрузчик ajax, например http://valums.com/ajax-upload/ или что-то еще, и обработайте загрузку как обычно Многостраничная форма представляет в вашей весенней структуре. – worenga

ответ

1

Предполагая, что вы уже создали форму и серверный контроллер, настроенный для обработки загрузки, этот небольшой фрагмент должен получить вас на пути к обновлению файла AJAX-y без обновления!

//create a new FormData reference 
//(note: you could use getElementById or querySelector) 
var myForm = document.forms.myUploadForm; 
var fd = new FormData(myForm); 

//create and open an XHR 
var xhr = new XMLHttpRequest(); 
xhr.open("POST","http://www.example.url/the/path/to/your/upload/controller"); 

//set up event listeners (optional) 
xhr.onreadystatechange = monitorStatusFunction; 
xhr.onprogress = updateProgressBarFunction; 

//send the form (w/ no page refresh!) 
xhr.send(fd); 
+0

, но если я сделаю это, это станет обычным почтовым методом .... моя проблема в том, что я должен вернуться на ту же страницу с данными в файле после некоторых манипуляций на стороне сервера ... их я становлюсь безнадежный ... pls help me – raki

+0

Вы действительно попробовали? Я использую этот фрагмент все время, и он заставляет браузер загружать файл (ы) в форму и не обновляет страницу, поэтому это, безусловно, AJAX POST, а не «обычный». Что именно вы хотите выполнить с файлом после его обработки на сервере?Вы хотите перезаписать исходный файл на диске клиента? Вы хотите загрузить его как новый файл? Вы хотите сделать больше обработки на стороне клиента? Вы хотите сделать его на странице где-нибудь? Вы просто хотите отправить подтверждение? Извините, я догадываюсь, что не совсем понимаю, что вам нужно сделать ... – JKing

+0

sry для смущения вас ...... что я действительно хочу, у меня есть страница, где я попрошу клиента загрузить файл, затем я должен прочитать содержимое файла на стороне сервера, обработать его и вернуть строку на ту же страницу, в зависимости от содержимого файла. Это все должно произойти без обновления страницы. – raki

0

Я Боролся за много много дней, и, наконец, я понял, решение, которое не может быть лучшим решением, но я отправляю его здесь, так что кто-то, как я могу получить помощь от этого ..

Чтобы удовлетворить все мои требования

Я открыл страницу jsp как всплывающее окно с моей страницы jsp, и с этой страницы я приземлился на свой контроллер и выполнил свою работу на стороне сервера и вернул строку в зависимости от содержимого файла загружен на ту же самую всплывающую страницу, и из всплывающего окна я передал эту строку на родительскую страницу.

Поэтому моя работа выполняется без обновления страницы ... шаги, чтобы сделать это 1.open всплывающее окно, как следовать

window.open («// URL на JSP странице, чтобы открыть», '// somename', '// свойства всплывающей страницы');

2.land на вашем контроллере из всплывающего окна и вернуться на ту же страницу jsp со строкой, которую я хочу со страницы jsp. 3.Вставьте эту строку на родительскую страницу следующим образом.

window.open.urparentjspfuntion (valuefromcontroller);

4.in родительская страница определяет функцию, чтобы сделать то, что вы хотите .....

Я надеюсь, что это решение может помочь так тех, кто, как и я ...