2013-04-23 9 views
1

Я искал дни ... У меня есть приложение Flex Air, которое нужно загрузить в сервлет Java. Форма очень просты:Загрузка файла с помощью формы из Flex Air в Java Servlet 3.0

Имя:
Фамилия:
Изображение:

Это самое основное применение ... Я пытался использовать это на стороне клиента:

http://blog.inspirit.ru/?p=139

import flash.utils.ByteArray; 
import ru.inspirit.net.MultipartURLLoader; 

var data1:ByteArray = new ByteArray(); 
data1.writeUTFBytes("This is a test 1"); 
data1.position = 0; 

var data2:ByteArray = new ByteArray(); 
data2.writeUTFBytes("This is a test 2"); 
data2.position = 0; 

var ml:MultipartURLLoader = new MultipartURLLoader(); 
ml.addEventListener(Event.COMPLETE, onReady); 

function onReady(e:Event):void 
{ 
    // Upload Complete 
} 

// simple string data 
ml.addVariable('test', 'test variable'); 

// file data: ByteArray, File name, Name of the file field, content MIME type (default application/octet-stream) 
// use [] if you need identical file field name 
// specify MIME type for your file part 
ml.addFile(data1, 'test1.txt', 'Filedata[]'); 
ml.addFile(data2, 'test2.txt', 'Filedata[]', 'text/plain'); 

ml.load('test.php'); 

На стороне сервера все, что я хочу сделать, это сохранить pic.jpg, как lastname.jpg в переменном токе:/добавление/

может кто-то показать мне самые основной рабочий пример между воздушным и Java Servlet 3.0

+2

Im не достаточно храбр, чтобы нажать на ссылку. Можете ли вы опубликовать код? – ethrbunny

+0

, и я думаю, что эта работа просто прекрасна ... но я не знаю, как ее сохранить на сервлет! на стороне сервера у меня есть многостраничный пост ... мне просто нужно сохранить его на правильном пути с правильным именем! –

+0

Я не уверен, что вы подразумеваете под «выгрузкой формы». Вы хотите, чтобы вы загружали данные? Или просто отправить данные на ваш Java-сервис? Является ли ваша Java-служба ожиданием данных как AMF, SOAP или REST? Форма – JeffryHouser

ответ

2

Это может быть несколько устаревшим, но это работает - может дать вам начать:

public function buildForm() : void 
{ 
    var requestObj : Object = new Object(); 
    requestObj.javavalue0 = value0; 
    requestObj.javavalue1 = value1; 
    flexform.request = requestObj; 

    flexform.send(); 
} 

<mx:HTTPService id="flexform" url="https://someurl.org/Form/servletPage" 
    method="POST" result="resultHandlerSubmitForm(event)" 
    fault="faultHandler(event)" /> 

на стороне Java: использовать request.getParameter, чтобы получить значение POST.

public class servletPage extends HttpServlet 
{ 

/** 
* Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods. 
* @param request servlet request 
* @param response servlet response 
* @throws ServletException if a servlet-specific error occurs 
* @throws IOException if an I/O error occurs 
*/ 
protected void processRequest(HttpServletRequest request, HttpServletResponse response) 
throws ServletException, IOException 
{ 
    response.setContentType("text/html;charset=UTF-8"); 
    PrintWriter out = response.getWriter(); 
    try 
    { 
     String str_javavalue0 = request.getParameter("javavalue0"); 

и так далее ....

+1

да .. но проблема больше на стороне сервлета! –

+0

В чем проблема на стороне сервлета, которая не рассматривается в этом ответе? Я думаю, что этот ответ показывает, как использовать Flex для связи с сервлетом и как получить доступ к переданным параметрам внутри сервлета. Что еще тебе нужно? – JeffryHouser