Flex中Image控件相关之Java+Flex项目中ByteArray传到服务器端(java端)持久化(文件上传)<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
minWidth="955" minHeight="600"
creationComplete="createHandler()"
>
<fx:Script>
<![CDATA[
import mx.controls.Alert;
import mx.utils.Base64Encoder;
private function createHandler():void{
fileRefer.addEventListener(Event.SELECT,selectHandler); //选择文件
fileRefer.addEventListener(Event.COMPLETE,completeHandler);//加载完成
}
private function selectHandler(event:Event):void{
if(fileRefer){
fileRefer.load();
}
}
private function completeHandler(event:Event):void{
if(fileRefer){
mySource.source = fileRefer.data;
}
}
private var fileRefer:FileReference = new FileReference();
protected function sourceFile_clickHandler(event:MouseEvent):void
{
// TODO Auto-generated method stub
fileRefer.browse([new FileFilter("Images(*.jpg;*.gif;*.png)","*.jpg;*.gif;*.png")]);
}
protected function btn_canvertToImage_clickHandler(event:MouseEvent):void
{
// TODO Auto-generated method stub
if(fileRefer.data){
destSource.source = fileRefer.data;
}
}
private var urlRequest:URLRequest = new URLRequest("http://localhost:9080/ByteArrayApp/persistence");
protected function btn_persistence_clickHandler(event:MouseEvent):void
{
// TODO Auto-generated method stub
urlRequest.data = fileRefer.data;
urlRequest.contentType = "application/octet-stream";
urlRequest.method = URLRequestMethod.POST;
var urlloader:URLLoader = new URLLoader();
urlloader.dataFormat = URLLoaderDataFormat.BINARY;
urlloader.addEventListener(Event.COMPLETE,completePersistenceHandler);
urlloader.load(urlRequest);
}
private function completePersistenceHandler(event:Event):void{
Alert.show("持久化成功","恭喜");
}
]]>
</fx:Script>
<fx:Declarations>
</fx:Declarations>
<s:BorderContainer id="sourceFileContainer" x="8" y="30" borderColor="#1F7888" click="sourceFile_clickHandler(event)">
<s:Image id="mySource" x="0" y="-4" width="130" height="127"/>
</s:BorderContainer>
<s:Button id="btn_canvertToImage" x="158" y="93" width="52" height="18" label="==>" chromeColor="#1F7888"
color="#FEFDFD" click="btn_canvertToImage_clickHandler(event)"/>
<s:BorderContainer id="destSourceContainer" x="224" y="35" borderColor="#1F7888">
<s:Image id="destSource" width="130" height="127"/>
</s:BorderContainer>
<s:Button id="btn_persistence" x="372" y="90" label="==>持久化到硬盘" chromeColor="#1F7888" click="btn_persistence_clickHandler(event)"/>
<s:Label x="34" y="167" width="75" height="17" text="点击选择图片"/>
</s:Application>
package com.lmx.servlet;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.ServletInputStream;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class PersistenceServlet
*/
@WebServlet("/persistence")
public class PersistenceServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public PersistenceServlet() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
System.out.println("============BEGIN===================");
ServletInputStream servletInputStream = request.getInputStream();
int len = request.getContentLength();
byte buffer[] = new byte[len];
int readlen=0;
FileOutputStream fos = new FileOutputStream(new File("c:/jun.jpg"));
while((readlen=servletInputStream.read(buffer))!=-1){
fos.write(buffer, 0, readlen);
}
fos.flush();
fos.close();
servletInputStream.close();
System.out.println("============END===================");
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
}
分享到:
相关推荐
可以创建一个HTTPService实例,配置其URL指向服务器端的接收接口,然后将ByteArray中的音频数据作为POST请求的二进制内容发送。需要注意的是,由于声音数据较大,可能需要处理分块上传或进度显示的问题。 服务器端...
3. **数据转换**:如果无法控制服务器端的编码设置,可以在Flex客户端接收到数据后进行转换。使用AS3的`flash.utils.ByteArray`类,先读取原始数据,然后使用`ByteArray.readUTFBytes()`方法读取UTF-8编码的字符串,...
服务器端需要读取请求体中的二进制数据,将其保存为图片文件,并可能进行一些验证和处理。例如,在Servlet中,你可以这样处理上传: ```java protected void doPost(HttpServletRequest request, ...
在本场景中,我们将讨论如何在Flex中捕获组件的快照,将其转换为ByteArray,并通过JavaServlet将其导出为图片。 首先,让我们深入了解Flex中的组件快照。在Flex中,我们可以使用BitmapData类来捕获组件的视觉表示,...
标题中的“Flex拍照并上传到java后台——未调试成功”表明这是一个关于使用Adobe Flex技术进行拍照功能实现,并将拍摄的照片上传到Java后端服务器的项目,但目前该项目可能在调试阶段遇到了问题。Flex是一种用于创建...
标题中的“Flex 与 Struts2 ByteArray 数据上传”指的是在Web开发中,使用Adobe Flex作为前端客户端,通过Struts2框架在后端处理字节数组(ByteArray)数据的上传技术。Flex是一种基于Adobe Flash Player或Adobe AIR...
通常情况下,服务器端需要提供一个CROSSDOMAIN.XML文件,该文件声明了允许哪些域名或IP地址进行跨域访问。 - 在客户端(Java应用程序)中,可以通过编程方式设置Socket的安全策略,允许特定的域名或IP地址进行访问...
4. **文件下载**:服务器返回的Excel文件二进制流,可以在Flex Air应用中通过ByteArray读取并提供给用户下载。使用FileReference类,可以触发浏览器的下载对话框,让用户保存Excel文件。 5. **处理中文字符**:由于...
在本文中,我们将深入探讨如何在Flex环境中实现一个图片上传并带有预览功能的网站。Flex是一种基于ActionScript 3的开源框架,主要用于构建富互联网应用程序(RIA)。它提供了丰富的图形用户界面组件和强大的数据...
此外,ByteStreamDemo这个文件很可能是示例项目的名称,其中可能包含了完整的客户端和服务器端代码,用于演示如何使用ByteArray进行图片上传。如果你能访问这个项目,那么可以通过阅读和运行其代码,更深入地理解...
| ByteArray | `byte[]` | Flex中的ByteArray类型在Java中对应原始字节数组byte[]。 | | IExternalizable | `java.io.Externalizable` | 实现IExternalizable接口的Flex对象在Java中也应实现Externalizable接口。 | ...
在本教程中,我们将深入探讨如何使用Flash Builder 4.5与Java进行集成,以便实现数据的持久化存储。Flash Builder 4.5是一款强大的开发工具,主要用于构建Flex和Adobe AIR应用程序,而Java则是一种广泛使用的后端...
导入这个文件到你的Flex项目中,你就可以利用其功能进行图像的二进制流上传了。 总结来说,Flex中的图像上传涉及到BitmapData对象的创建、转换为ByteArray,然后通过网络请求发送到服务器。在实际开发中,还需要...
- **FileReference**: Flex中用于处理文件上传的主要类,可以通过其提供的方法来打开文件选择对话框并获取用户选择的文件。 - **ByteArray**: 用于存储文件数据,通常在上传前将文件转换为字节数组形式。 - **...
在Flex编程中,有时我们需要处理音频数据,例如从网络接收或者本地存储的字节数组(ByteArray)中读取音频信息,并将其转化为可播放的声音(Sound)。标题"flex byteArray to sound"表明我们要讨论的是如何将一个...
二维码,作为一种广泛应用于移动互联网时代的编码技术,已经深入到我们日常生活的各个角落。在JavaScript(简称js)这个前端开发的主要语言中,实现二维码生成并支持中文字符是相当实用的功能。本文将详细介绍如何在...
4. **ActionScript 3.0数据类型**: 在FLEX中,`ByteArray`类用于存储和操作字节数据,而`String`类则用于处理文本。在Base64编码过程中,这两者之间的转换是必要的。 5. **使用示例**: `Base64Util.docx`可能包含...
为了实现上传图片的预览功能,我们需要在用户选择文件后,利用JavaScript与Flash Player的通信,将选取的图片数据传递到Flex应用中。 1. **HTML表单与Flex通信**: - 使用`FileReference`对象:这是Flash Player...
它的工作原理是将明文中的每个字符移动一定的位数来形成密文。 在 Java 中,凯撒密码可以通过使用 Java 的基本数据类型和操作符来实现。下面是一个简单的 Java 程序,展示了凯撒密码的加密和解密过程。 密文->明文...
4. **数据包处理**:由于UDP的不可靠性,发送端可能需要将大文件分割成多个小数据包进行发送,每个数据包包含文件的一部分内容和相关的元信息(如序列号、总包数等)。接收端根据这些元信息重组数据,确保正确恢复...