flex httpservice java 传送参数和附件

测试的MXML:

<?xml version="1.0" encoding="utf-8"?><br>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="horizontal"><br>
<mx:Script><br>
	<![CDATA[<br>
	import mx.rpc.events.ResultEvent;<br>
	import flash.net.URLRequest;<br>
	import flash.net.FileReference;<br>
	import flash.events.Event;<br>
	<br>
		private var myFileRef:FileReference=null ;<br>
		<br>
		private function doClick():void{<br>
			up.send();<br>
			var request:URLRequest=new URLRequest("http://localhost:8080/webproject12/servlet/upload"); <br>
			myFileRef.upload(request);<br>
		}<br>
		private function fileBrowse():void{<br>
				myFileRef = new FileReference();			<br>
				myFileRef.addEventListener(Event.SELECT,doSelect);<br>
				myFileRef.browse();<br>
		}<br>
		private function doSelect(evt:Event):void{<br>
			imageName.text=myFileRef.name;<br>
		}<br>
		private function doResult(event:ResultEvent):void{<br>
			<br>
		}<br>
	]]><br>
</mx:Script><br>
	<mx:HBox height="100%" width="100%"><br>
		<mx:SWFLoader source="@Embed('swf/logo.swf')"/><br>
	</mx:HBox><br>
	<mx:HTTPService id="up" url="http://localhost:8080/webproject8/testhttp.jsp" result="doResult(event)" method="POST"><br>
		<mx:request xmlns=""><br>
		<username><br>
			{username.text}<br>
		</username><br>
			<br>
		</mx:request><br>
	</mx:HTTPService><br>
	<mx:VBox height="100%" width="100%"><br>
		<mx:Form><br>
			<mx:FormHeading label=" test load"/><br>
			<mx:FormItem label=" username:"><br>
				<mx:TextInput id="username"/><br>
			</mx:FormItem><br>
			<mx:FormItem label="Image Name" direction="horizontal"><br>
			<mx:TextInput id="imageName"/><br>
			<mx:Button click="fileBrowse()" label="Browse"/><br>
		    </mx:FormItem><br>
			<mx:FormItem><br>
				<mx:Button label="提交" click="doClick()"/><br>
			</mx:FormItem><br>
		</mx:Form><br>
	</mx:VBox>	<br>
</mx:Application>

 java:使用了组建 commons FILEUPLOAD

package org.zizi.servlet;

import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Iterator;
import java.util.List;

import javax.servlet.ServletConfig;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;

public class UploadServelt extends HttpServlet {

	private static final long serialVersionUID = -850828778548588525L;
	private ServletContext sc;// application 上传组件要用
	private String savePath;// 保存路径

	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		doPost(request, response);

	}

	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		request.setCharacterEncoding("utf-8");
		// 开始组建的使用
		DiskFileItemFactory factory = new DiskFileItemFactory();
		ServletFileUpload upload = new ServletFileUpload(factory);

		try {
			List list = upload.parseRequest(request);// 解析传过来的内容 返回LIST
			Iterator it = list.iterator();// 对LIST进行枚举
			while (it.hasNext()) {
				FileItem item = (FileItem) it.next();
				// 判断是文本信息还是对象(文件)
				if (item.isFormField()) {
					// 如果是文本信息返回TRUE
					System.out.println("参数" + item.getFieldName() + ":"
							+ item.getString("UTF-8"));
					// 注意输出值的时候要注意加上编码
				} else {
					if (item.getName() != null && !item.getName().equals("")) {
						System.out.println("上传文件的大小:" + item.getSize());
						System.out.println("上传文件的类型:" + item.getContentType());
						System.out.println("上传文件的名称:" + item.getName());
						System.out.println(sc.getRealPath("/") + savePath);
						// 保存在服务器硬盘中
						File tempFile = new File(item.getName());// 临时FILE对象
						// 此时有路径的名字
						// TEMPFILE主要为了获取文件的单纯文件名
						File file = new File(sc.getRealPath("/") + savePath,
								"kdj"+(tempFile.getName()).substring((tempFile.getName()).length()-4,(tempFile.getName()).length()));
						//在这里可以更改名字    
						//用subString 的方法截取后缀 就可以加上自定义名称放在第二个参数
						// 这个FILE是真正要保存的文件
						item.write(file);// 写入服务器

						// 返回结果
						request.setAttribute("upload.message", "上传成功");
					} else {

						request.setAttribute("upload.message", "没有选择上传文件");
					}
				}
			}
		} catch (FileUploadException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			request.setAttribute("upload.message", "上传没成功");
		}
		
		request.getRequestDispatcher("/uploadResult.jsp").forward(request, response);

	}

	public void init(ServletConfig config) {
//实现初始化文件   获取初始化参数 路径   和获取 一个全局服务器对象 备用
		savePath = config.getInitParameter("savePath");// 初始化绑定参数 表明保存在哪
		sc = config.getServletContext();

	}

}
 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值