`
roger_588
  • 浏览: 69769 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Flex图片另存为的解决方法-类似可以解决另存为excel

阅读更多

    我们知道Flex对于本地的限制比AIR要大,当我们想保存一个由Flex生成的文件必须借由服务器来完成,现在有一个需求就是,用户想保存Flex生成的图片在本地,我们要完成这个过程,必须先将Flex生成的图片转换为通用的数据格式,即ByteArray,然后由后台程序帮助写文件,形式上类似先上传,再下载,只不过中间不用保存实际的物理文件。

    好了废话这么多把代码贴上来吧
    Flex端


<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:Script>
  <![CDATA[
  import mx.graphics.codec.JPEGEncoder;
  import mx.graphics.ImageSnapshot;
  private function saveAs(){
      var en:JPEGEncoder = new JPEGEncoder(100); //压缩图片,100是指质量
      var ba:ByteArray=en.encode(ImageSnapshot.captureBitmapData(img));//将控件转为BitmapData后再转  为ByteArray
      var request:URLRequest = new URLRequest("/TestForLCDS/servlet/UploadServlet");
      request.method="POST";
      request.data=ba;
      request.contentType = "application/octet-stream"; //这个很重要,设置成流数据
      navigateToURL(request,"_blank"); //因为要浏览器触发下载事件,所以就不用异步方式打开连接了
  }
]]>
</mx:Script>

<mx:Button x="228" y="10" label="另存为本地图片" click="saveAs()"/>
    <mx:Image id="img" x="10" y="10" source="img.jpg" width="200"  height="200" scaleContent="false"/>
</mx:Application>



后台Java servlet


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

    response.setContentType("application/x-download"); //内容是下载
    response.setHeader("Content-Disposition","attachment;filename=" + "test.jpg");//文件名,可以进一步 处理
    //读数据
    BufferedInputStream inputStream = new BufferedInputStream(request.getInputStream());
    OutputStream outputStream = response.getOutputStream();
    byte [] bytes = new byte[1024];
     int v;
    //写数据
    while((v=inputStream.read(bytes))>0){
        outputStream.write(bytes,0,v);
    }
        outputStream.flush();
        outputStream.close();
        inputStream.close();
  }
分享到:
评论

相关推荐

    flex 实现图片另存为

    通过以上详细解释,我们可以清晰地了解到如何在Flex中使用`FileStream`和`ByteArray`来实现图片的另存为功能。这不仅有助于理解代码逻辑,也为我们提供了实际应用场景和技术要点,有助于开发者更好地掌握相关技术...

    Flex开发(解决-要点-技巧)

    ### Flex开发:解决要点与技巧 #### 一、Flex与ActionScript 3.0 **Flex** 是一种用于构建和部署跨平台富互联网应用程序(RIA)的强大框架,它由Adobe公司开发并维护。Flex的核心优势在于它能够创建高度交互性的用户...

    跟我StepByStep学FLEX教程------王一松

    ### FLEX教程知识点详解 #### 1. FLEX概述 - **FLEX介绍**:FLEX是一种用于构建跨平台富互联网...通过以上知识点的学习,读者可以全面地掌握Flex及其相关技术栈的使用方法,从而能够开发出高质量的富互联网应用程序。

    flex布局-flex-layout-master.zip

    通过`flex-direction`属性可以改变它们的方向。 3. **Flex项(Flex Items)**:是Flex容器的直接子元素,它们在主轴上排列。`flex-wrap`属性决定是否允许换行,以及换行的方向。 4. **Flex属性**:主要有以下几种...

    flex-messaging-core-4.7.3.jar

    flex-messaging-core-4.7.3.jar 最新版,下载了好长时间才下载下来,亲测可用!

    Flex 工程源码--EmployeeMgmt-Flex.7z

    这个压缩包"Flex 工程源码--EmployeeMgmt-Flex.7z"包含了名为"EmployeeMgmt-Flex"的Flex项目源代码,很可能是用于员工管理的系统。下面我们将详细探讨Flex的相关知识点。 1. **Flex框架**:Flex是一套完整的开发...

    flex带时分秒日历---完善版

    在IT行业中,Flex是一种流行的富互联网应用程序(RIA)开发框架,由Adobe公司提供,主要用于构建交互性强、用户体验良好的Web应用。本项目“flex带时分秒日历---完善版”显然是一个基于Flex技术的日历组件,它不仅...

    FLEX入门实例--------各种Effect的综合运用

    通过分析和运行这个"MXML"文件,用户可以学习到如何在Flex中实现这种Wipe Effect,并可能了解到其他相关的Effect和它们的组合使用方法。 总结起来,这个资源包提供了一个学习Flex中Effect使用的实例,包括实际的...

    spring-flex-1.5.0.M2-dist.zip

    这个名为“spring-flex-1.5.0.M2-dist.zip”的压缩包,包含了Spring Flex 1.5.0.M2版本的所有必要组件,使得开发者能够快速地开发和部署基于Flex的客户端应用。 在Spring Flex 1.5.0.M2中,核心组件`spring-flex-...

    FLEX资源---------手把手实现WebService服务与通讯

    8. **常见问题和解决策略**:列出在实现过程中可能遇到的问题以及对应的解决方法。 通过这篇文章和配套的文档,读者应该能够学习到一个完整的流程,从创建和部署Web服务到使用Flex客户端进行通信,这在开发富互联网...

    Flex4-in-a-day

    文档还涉及了在同一个项目中混合使用Flex3和Flex4组件的方法,以及如何将Flex3项目迁移到Flex4。最后,文档介绍了Flash Builder 4的一些新特性,如状态编辑器、getter/setter/event handler代码生成器、性能分析器和...

    flex-tour-de-flex-component-explorer-1.2-308demo

    非常好DEMO参考,这个项目已经转到Apache名下了,最新的版本1.2,308个例子,已经全站打包,搜索:flex-tour-de-flex-component-explorer-1.2-308demo。开源代码http://flex.apache.org/download-tourdeflex.html

    flex----组件---行为类与特效类

    Flex提供了一个名为Effect类的基类,开发者可以通过继承这个类并覆盖其方法来创建自定义特效。同时,Flex还提供了EffectManager类来管理和控制特效的执行。例如,Fade特效用于改变组件的透明度,Slide特效则用于改变...

    flex-2.5.4+bison-2.4.1+mingw.zip

    资源包含flex-2.5.4+bison-2.4.1+mingw,此外包含本人写的测试源码,编译命令及详细过程,另附一些有用的文章pdf,用于编译原理课程学习。详细使用参考文章:...

    Flex 游戏入门级----------------位图切割,人物行走

    4. 创建 Bitmap 对象:切割完成后,可以创建 Bitmap 对象,将 BitmapData 设置为其源,然后将其添加到舞台上显示。 二、人物行走动画 人物行走动画涉及帧序列或精灵表(Sprite Sheet)的使用。在 Flex 中,你可以...

    maven-flex2-plugin-support-1.0.jar

    maven-flex2-plugin-support-1.0.jar

    maven-flex2-plugin-1.3-sources.jar

    maven-flex2-plugin-1.3-sources.jar

Global site tag (gtag.js) - Google Analytics