flexはjavaサーバに画像をアップロードします
今日flexをjavaにアップロードして、今成功して、真ん中もいつも少しの波乱があって、今記録します.java側の実装に重点を置きます.
flex側:urlパラメータに渡されたURLにファイルをアップロードします.このURLは、アップロードを受け入れるように構成されたサーバスクリプトである必要があります.Flash Playerは、HTTP POSTメソッドを使用してファイルをアップロードします.アップロードされたサーバ・スクリプトの処理は、次の要素を含むPOSTリクエストに送信されます.
Content-type、multipart/form-dataに属する
Content-Disposition、名前のプロパティはデフォルトで「Filedata」、filenameプロパティは元のファイルの名前に設定されています
ファイルのバイナリコンテンツ
JAva側はspring MVCで実現し、画像を受信し、まずローカルに保存し、ftpにアップロードし、コードをアップロードする.
2つの良い参考サイトを添付します.
http://www.adobe.com/devnet/flex/articles/file_upload.html
http://blog.csdn.net/duanjingyu/article/details/5539690
flex側:urlパラメータに渡されたURLにファイルをアップロードします.このURLは、アップロードを受け入れるように構成されたサーバスクリプトである必要があります.Flash Playerは、HTTP POSTメソッドを使用してファイルをアップロードします.アップロードされたサーバ・スクリプトの処理は、次の要素を含むPOSTリクエストに送信されます.
Content-type、multipart/form-dataに属する
Content-Disposition、名前のプロパティはデフォルトで「Filedata」、filenameプロパティは元のファイルの名前に設定されています
ファイルのバイナリコンテンツ
JAva側はspring MVCで実現し、画像を受信し、まずローカルに保存し、ftpにアップロードし、コードをアップロードする.
- @Controller
- public class FlashController extends BaseController{
-
- //
- private int maxPostSize = 100 * 1024 * 1024;
- public static String imagePath = null;
- public static String imageCdnPath = null;
-
- @SuppressWarnings("unchecked")
- @RequestMapping("/uploadImage")
- @ResponseBody
- public String uploadImage(HttpServletRequest request, HttpServletResponse response) {
- try {
- if(imagePath == null) {
- imagePath = Config.getConfig("message.image.path");
- }
- if(imageCdnPath == null) {
- imageCdnPath = Config.getConfig("message.image.cdn.dir");
- }
- } catch (IOException e) {
- // TODO Auto-generated catch block
- LoggerUtil.error(" ",e);
- }
- String productId = request.getParameter("productId");
- if(StringUtils.isBlank(productId)) {
- productId = "default";
- }
- LoggerUtil.debug(" flash ,productId:" + productId);
- LoggerUtil.outInInfo(" flash ,productId:" + productId);
-
- // We use the FileUpload package provided by Apache to process the request.
- DiskFileItemFactory factory = new DiskFileItemFactory();
- factory.setSizeThreshold(4096);
- ServletFileUpload upload = new ServletFileUpload(factory);
- upload.setSizeMax(maxPostSize);
- String fileName = null;
- try {
- request.setCharacterEncoding("UTF-8");
- List fileItems = upload.parseRequest(request);
- Iterator iter = fileItems.iterator();
- while (iter.hasNext()) {
- FileItem item = (FileItem) iter.next();
- if (!item.isFormField()) {
- fileName = item.getName();
- //
- String fileType = fileName.substring(fileName.lastIndexOf("."));
- fileName = ImageUtils.getCreateImageFileName("","","",fileType);
- item.write(new File(imagePath + fileName));
- }
- }
- } catch (FileUploadException e) {
- LoggerUtil.error("[ ] ", e);
- } catch (UnsupportedEncodingException e) {
- // TODO Auto-generated catch block
- LoggerUtil.error("[ ] ", e);
- } catch (IOException e) {
- // TODO Auto-generated catch block
- LoggerUtil.error("[ ] ", e);
- } catch (Exception e) {
- // TODO Auto-generated catch block
- LoggerUtil.error("[ ] ", e);
- }
-
- // CDN
- FTPUtils ftpUtils = new FTPUtils("config");
- try {
- boolean result = ftpUtils.connect();
- if(!result) {
- LoggerUtil.alarmInfo(" FTP ");
- return "error";
- }
- } catch (IOException e1) {
- // TODO Auto-generated catch block
- LoggerUtil.error(" FTP ", e1);
- return "error";
- }
-
- String ftpName = imageCdnPath + productId + "/" + DateUtil.formatDate(new Date(),"yyyyMM") + "/" + fileName;
- String srcImagePath = imagePath+fileName;
- int uploadResult = Im4JavaUtils.uploadJPGImageByIm4Java(ftpUtils, srcImagePath, ftpName, ImageUtils.IMAGE_SIZE_TYPE_ORIG);
- LoggerUtil.debug(" :" + uploadResult);
- if(uploadResult != FTPUtils.UPLOADSTATUS_UPLOAD_FILE_SUCESS) {
- return "error";
- }
- String result = ftpUtils.getFtpHttpUrl()+ productId + "/" + DateUtil.formatDate(new Date(),"yyyyMM") + "/" + fileName;
- LoggerUtil.debug(result);
- return result;
- }
- }
2つの良い参考サイトを添付します.
http://www.adobe.com/devnet/flex/articles/file_upload.html
http://blog.csdn.net/duanjingyu/article/details/5539690