• flex4.5 + .net4.0 以二进制方式上传图片


     

    flex端: 

     1<?xml version="1.0" encoding="utf-8"?>
     2 <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
     3                xmlns:s="library://ns.adobe.com/flex/spark" 
     4                xmlns:mx="library://ns.adobe.com/flex/mx" 
     5                minWidth="955" minHeight="600"                
     6                xmlns:esri="http://www.esri.com/2008/ags">
     7     <fx:Script>
     8         <![CDATA[
     9             import mx.events.FlexEvent;
    10             import mx.graphics.ImageSnapshot;
    11             import mx.graphics.codec.PNGEncoder;
    12             
    13             
    14             private var __url:String = "http://localhost/FxNETChannel_1/UploadImageData.aspx?";
    15             private var bitmapData:BitmapData;
    16             private var urlRequest:URLRequest;
    17             private var urlLoader:URLLoader;
    18             
    19             protected function btnSendMap_clickHandler(event:MouseEvent):void
    20             {
    21                 // TODO Auto-generated method stub
    22                 
    23                 //获得页面地图的BitmapData对象
    24                 bitmapData = ImageSnapshot.captureBitmapData(map);
    25                 
    26                 //创建URLRequest对象
    27                 urlRequest = new URLRequest();
    28                 
    29                 //设置请求地址
    30                 urlRequest.url = __url;
    31                 
    32                 //设置请求方式
    33                 urlRequest.method = URLRequestMethod.POST;
    34                 
    35                 //把BitmapData 转换成 ByteArray
    36                 var byte:ByteArray = new PNGEncoder().encode(bitmapData);
    37                 
    38                 //设置请求数据
    39                 urlRequest.data = byte;
    40                 
    41                 //设置请求内容类型
    42                 urlRequest.contentType = "image/png";
    43                 
    44                 //创建URLLoader对象
    45                 urlLoader = new URLLoader();
    46                 
    47                 //设置URLLoader的格式为二进制
    48                 urlLoader.dataFormat = URLLoaderDataFormat.BINARY;
    49                 
    50                 //加载
    51                 urlLoader.load(urlRequest);
    52             }
    53             
    54         ]]>
    55     </fx:Script>
    56     <fx:Declarations>
    57         <!-- Place non-visual elements (e.g., services, value objects) here -->
    58     </fx:Declarations>
    59     
    60     <s:HGroup width="100%" height="100%">
    61         <esri:Map id="map">
    62             <esri:ArcGISTiledMapServiceLayer width="100%" height="100%" url="http://server.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer" />
    63         </esri:Map>
    64         <s:Button id="btnSendMap" label="发送地图" click="btnSendMap_clickHandler(event)"/>
    65     </s:HGroup>
    66 </s:Application>

    .net端:

     UploadImageData.aspx文件

     1 using System;
     2 using System.Data;
     3 using System.Configuration;
     4 using System.Collections;
     5 using System.Web;
     6 using System.Web.Security;
     7 using System.Web.UI;
     8 using System.Web.UI.WebControls;
     9 using System.Web.UI.WebControls.WebParts;
    10 using System.Web.UI.HtmlControls;
    11 using System.IO;
    12 using System.Data.OracleClient;
    13 using App_CORE.DBAPI;
    14 using RemotingService;
    15 using System.Drawing;
    16 using System.Drawing.Imaging;
    17 
    18 public partial class UploadImageData : System.Web.UI.Page
    19 {
    20     public void Page_Load(object sender, EventArgs e)
    21     {
    22         Stream _stream = Request.InputStream;        
    23         byte[] Bytes = new byte[_stream.Length];
    24         string path = System.Web.HttpContext.Current.Request.MapPath("FileUpload/Image/");
    25         FolderCreate(path); 
    26         try
    27         {
    28             MemoryStream stream = new MemoryStream();
    29             stream.Write(Bytes, 0, Bytes.Length);
    30             Bitmap bitMap = new Bitmap(_stream);
    31             HttpContext.Current.Response.ContentType = "image/png";
    32             string imgName = DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString() + DateTime.Now.Day.ToString() + DateTime.Now.Hour.ToString() + DateTime.Now.Minute.ToString() + DateTime.Now.Second.ToString();
    33             bitMap.Save(path + imgName + ".png", ImageFormat.Png);
    34             HttpContext.Current.Response.Clear();
    35             HttpContext.Current.ApplicationInstance.CompleteRequest();
    36         }
    37         catch (Exception ex)
    38         {
    39             System.Web.HttpContext.Current.Response.Write(ex.Message);
    40         }
    41     }
    42 
    43     /// <summary>
    44     /// 判断文件夹是否存在,如果不存在则新建一个
    45     /// </summary>
    46     /// <param name="path"></param>
    47     public static void FolderCreate(string path)
    48     {
    49         if (!Directory.Exists(path))
    50         {
    51             Directory.CreateDirectory(path);
    52         }
    53     }

    54 } 

  • 相关阅读:
    Blob隐藏真实路径
    Vue原理笔记3
    Vue原理笔记2
    Vue双向绑定原理
    Vue原理笔记1
    MVC、MVP、MVVM
    Go语言学习之-带分割符的文件转excel
    IBMMQ之工具类
    IBMMQ之取发文件
    JAVA之我的公共部分测试调用
  • 原文地址:https://www.cnblogs.com/sange/p/2421106.html
Copyright © 2020-2023  润新知