为何二进制流提交到服务器,无法获取文件

自在修行 2012-11-11 08:03:24
做的一个裁剪图片后上传到服务器,服务器端使用的是asp.net
上传部分的代码是红字部分,能够发送网络连接,跟踪到提交时request.data有内容,但是服务器端无法获取文件内容

Flex程序文件如下:


<?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"
width="699" height="270" minWidth="955" minHeight="600"
>


<fx:Declarations>

</fx:Declarations>
<fx:Script>
<![CDATA[

//为裁剪框设置鼠标事件
//添加鼠标事件监听
import flash.net.FileReference;

import mx.collections.ArrayCollection;
import mx.controls.Alert;
import mx.events.CloseEvent;
import mx.graphics.ImageSnapshot;
import mx.graphics.codec.*;


private var m_pictureBitmapData:BitmapData //定义视频截图
private var image_width:int=170; //图像框的厨师大小
private var image_height:int=190;
private var CurScale:Number=1//当前放大倍数

private var fileRef:FileReference = new FileReference();
private const defaultRequestUrl:String = "./zhaopian.aspx?action=post";

protected function Image_zoom1_clickHandler(event:MouseEvent):void
{
CurScale=CurScale+0.1;

image.scaleX=CurScale;
image.scaleY=CurScale;

image_back.scaleX=CurScale;
image_back.scaleY=CurScale;
//中心居中
Image_Move2Center();
}

protected function Image_zoom2_clickHandler(event:MouseEvent):void
{

if (CurScale > 1.0)
{
CurScale=CurScale-0.1;
}
image.scaleX=CurScale;
image.scaleY=CurScale;

image_back.scaleX=CurScale;
image_back.scaleY=CurScale;
Image_Move2Center();
}
//让图像居中显示
protected function Image_Move2Center():void
{

image.x=-(image_width*image.scaleX-image.width)/2;
image.y=-(image_height*image.scaleX-image.height)/2;

setImage_back();

//中心居中

}
//设置image_back的坐标与 image同步

protected function setImage_back():void
{
image_back.x=image.x+1;
image_back.y=image.y+1;
}
//移动图像
protected function imageMove(Drect:String):void
{
//移动时应该避免图片移出切图框
ss.text=image.width.toString();
var Pix:int=10;
switch (Drect)
{ case "left":
//右边不能超过

image.x=image.x-Pix;

break;
case "right":
image.x=image.x+Pix;

break;
case "up":
image.y=image.y-Pix;

break;
case "down":
image.y=image.y+Pix;

}
setImage_back()
}


//打开本地图片

protected function openfile_clickHandler(event:MouseEvent):void
{
// TODO Auto-generated method stub
fileRef.addEventListener(Event.SELECT, selectHandler);
fileRef.addEventListener(Event.COMPLETE, completeHandler);
fileRef.addEventListener(ProgressEvent.PROGRESS, progressHandle);
var imageTypes:FileFilter = new FileFilter("Images (*.jpg, *.jpeg, *.gif, *.png)", "*.jpg; *.jpeg; *.gif;*.png");
var allTypes:Array = new Array(imageTypes);

//var textTypes:FileFilter = new FileFilter("Text Files (*.txt, *.rtf)", "*.txt; *.rtf");
//var allTypes:Array = new Array(imageTypes, textTypes);
fileRef.browse(allTypes);


}
private function selectHandler(evt:Event):void {
fileRef.load();

}

private function completeHandler(evt:Event):void {
image.source = fileRef.data;
image_back.source = fileRef.data;
}
private function progressHandle(event : ProgressEvent) : void {
ss.text="ok";

}


protected function upload_clickHandler(event:MouseEvent):void
{
var request : URLRequest = new URLRequest("./zhaopian.aspx");

fileRef.upload(request);
ss.text="uploading";
}



protected function button1_clickHandler(event:MouseEvent):void
{

var bd:BitmapData=ImageSnapshot.captureBitmapData(image_cut);
ImageSnapshot.defaultEncoder=JPEGEncoder;
//jpg编码
var jpgencode:JPEGEncoder = new JPEGEncoder();
//绘制后的位图图像 转为 JPEG格式的数据对象
//var jpegData:ByteArray = jpgencode.encode(bd);
new_img.source=bd;

var request:URLRequest = new URLRequest("http://localhost:51761/bin-release/zhaopian.aspx?action=post");
request.contentType = 'applicatoin/octet-stream';
request.method = URLRequestMethod.POST;

request.data = bd;



//返回接收数据
var loader:URLLoader = new URLLoader();
loader.dataFormat = URLLoaderDataFormat.BINARY;
loader.load(request);
loader.addEventListener(Event.COMPLETE, uploadcompleteHandler);




}
private function uploadcompleteHandler(event : Event):void{
Alert.show("上传完成");
}
]]>
</fx:Script>

<fx:Declarations>
<!-- Place non-visual elements (e.g., services, value objects) here -->
</fx:Declarations>
<s:BorderContainer id="k_back" x="10" y="0" width="233" height="270" borderVisible="false">
<s:BorderContainer x="30" y="37" width="170" height="190"
backgroundAlpha="0.34" backgroundColor="#A5A4A4" borderAlpha="1.0"
creationComplete="k_back.contentGroup.clipAndEnableScrolling = true">
<s:Image id="image_back" x="0" y="0" width="170" height="190" backgroundColor="#080808"
source="assets/0(1).jpg"/>
</s:BorderContainer>

</s:BorderContainer>
<s:BorderContainer id="k1" x="10" y="0" width="233" height="270" backgroundAlpha="0.45"
backgroundColor="#CCC9C9" borderAlpha="1.0" borderColor="#B6B4B4">
<s:BorderContainer id="image_cut" x="30" y="37" width="170" height="190"
backgroundAlpha="0.34" backgroundColor="#A5A4A4" borderAlpha="0.69"
borderColor="#FEFCFC" borderVisible="true"
creationComplete="image_cut.contentGroup.clipAndEnableScrolling = true">
<s:Image id="image" x="0" y="0" width="170" height="190" backgroundColor="#080808"
source="assets/0(1).jpg"/>

</s:BorderContainer>
</s:BorderContainer>


<s:Button x="252" y="230" width="32" label="+" click="Image_zoom1_clickHandler(event)"/>
<s:Button id="Image_zoom2" x="322" y="230" width="32" label="-" click="Image_zoom2_clickHandler(event)"/>
<s:Image id="new_img" x="488" y="10" width="201" height="241"/>
<s:Button id="upload" x="396" y="162" label="保存" click="upload_clickHandler(event)"/>
<s:Button id="M_up" x="284" y="151" width="32" label="↑" click="imageMove("up")"/>
<s:Button id="M_down" x="284" y="173" width="32" label="↓" click=" imageMove("down")"/>
<s:Button id="M_l" x="250" y="163" width="32" label="←" click="imageMove("left")"/>
<s:Button id="M_right" x="318" y="164" width="32" label="→" click=" imageMove("right")"/>
<s:Button id="openfile" x="252" y="41" width="80" height="30" label="本地文件"
click="openfile_clickHandler(event)" fontSize="14"/>
<s:Label id="ss" x="353" y="41" text="标签"/>
<s:Button x="396" y="109" label="按钮" click="button1_clickHandler(event)"/>
</s:Application>


服务器端程序 :
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

Dim Files As HttpFileCollection
Files = Request.Files
Dim FSPath As String
FSPath = "..\face\"
Dim AllowExt As String = "jpg;gif;bmp"

Dim UploadSize As Integer = 200 '单位k
Dim LimitSize As Integer = UploadSize * 1024
If Files.Count > 0 Then

Dim FullPath, Filename, FileSize, FileExt, SaveFile As String
FullPath = Files.Item(0).FileName
FileSize = Files.Item(0).ContentLength
Filename = "aaaa." & FileExt
SaveFile = Server.MapPath("\") & Filename

Files.Item(0).SaveAs(SaveFile)
End If
End Sub
...全文
159 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
可以支持网页版查看,activiti5操作手册,工作开发学习List of Tables 2.1. 示例用户 2.2. webapp工具 3.1. 支持的数据库 6.1. 6.2. 6.3. 8.1. 邮件服务器配置 8.2. 邮件服务器配置 8.3. Mule服务器配置 8.4. Shell任务参数配置 15.1. HTTP方法和对应操作 15.2. HTTP方法响应代码 15.3. URL查询参数类型 15.4. JSON参数类型 15.5. 查询JSON参数 15.6. 查询JSON参数 15.7. 默认查询JSON类型 15.8. 变量JSON属性 15.9. 变量类型 15.10. URL查询参数 15.11. REST响应码 15.12. 获得一个部署 - URL参数 15.13. 获得一个部署 - 响应码 15.14. 创建新部署 - 响应码 15.15. 删除部署 - URL参数 15.16. 删除部署 - 响应码 15.17. 列出部署内的资源 - URL参数 15.18. 列出部署内的资源 - 响应码 15.19. 获取部署资源 - URL参数 15.20. 获取部署资源 - 响应码 15.21. 获取部署资源的内容 - URL参数 15.22. 获取部署资源的内容 - 响应码 15.23. 程定义列表 - URL参数 15.24. 程定义列表 - 响应码 15.25. 获得一个程定义 - URL参数 15.26. 获得一个程定义 - 响应码 15.27. 更新程定义的分类 - 响应码 15.28. 获得一个程定义的资源内容 - URL参数 15.29. 获得程定义的BPMN模型 - URL参数 15.30. 获得程定义的BPMN模型 - 响应码 15.31. 暂停程定义 - 请求的JSON参数 15.32. 暂停程定义 - 响应码 15.33. 激活程定义 - 响应码 15.34. 获得程定义的所有候选启动者 - URL参数 15.35. 获得程定义的所有候选启动者 - 响应码 15.36. 为程定义添加一个候选启动者 - URL参数 15.37. 为程定义添加一个候选启动者 - 响应码 15.38. 删除程定义的候选启动者 - URL参数 15.39. 删除程定义的候选启动者 - 响应码 15.40. 获得程定义的一个候选启动者 - URL参数 15.41. 获得程定义的一个候选启动者 - 响应码 15.42. 获得模型列表 - URL参数 15.43. 获得模型列表 - 响应码 15.44. 获得一个模型 - URL参数 15.45. 获得一个模型 - 响应码 15.46. 更新模型 - 响应码 15.47. 新建模型 - 响应码 15.48. 删除模型 - URL参数 15.49. 删除模型 - 响应码 15.50. 获得模型的可编译源码 - URL参数 15.51. 获得模型的可编译源码 - 响应码 15.52. 设置模型的可编辑源码 - URL参数 15.53. 设置模型的可编辑源码 - 响应码 15.54. 获得模型的附加可编辑源码 - URL参数 15.55. 获得模型的附加可编辑源码 - 响应码 15.56. 设置模型的附加可编辑源码 - URL参数 15.57. 设置模型的附加可编辑源码 - 响应码 15.58. 获得程实例 - URL参数 15.59. 获得程实例 - 响应码 15.60. 删除程实例 - URL参数 15.61. 删除程实例 - 响应码 15.62. 激活或挂起程实例 - URL参数 15.63. 激活或挂起程实例 - 响应码 15.64. 启动程实例 - 响应码 15.65. 显示程实例列表 - URL参数 15.66. 显示程实例列表 - 响应码 15.67. 查询程实例 - 响应码 15.68. 获得程实例的程图 - URL参数 15.69. 获得程实例的程图 - 响应码 15.70. 获得程实例的参与者 - URL参数 15.71. 获得程实例的参与者 - 响应码 15.72. 为程实例添加一个参与者 - URL参数 15.73. 为程实例添加一个参与者 - 响应码 15.74. 删除一个程实例的参与者 - URL参数 15.75. 删除一个程实例的参与者 - 响应码 15.76. 列出程实例的变量 - URL参数 15.77. 列出程实例的变量 - 响应码 15.78. 获得程实例的一个变量 - URL参数 15.79. 获得程实例的一个变量 - 响应码 15.80. 创建(或更新)程实例变量 - URL参数 15.81. 创建(或更新)程实例变量 - 响应码 15.82. 更新一个程实例变量 - URL参数 15.83. 更新一个程实例变量 - 响应码 15.84. 创建一个新的二进制程变量 - URL参数 15.85. 创建一个新的二进制程变量 - 响应码 15.86. 更新一个二进制程实例变量 - URL参数 15.87. 更新一个二进制程实例变量 - 响应码 15.88. 获取一个分支 - URL参数 15.89. 获取一个分支 - 响应码 15.90. 对分支执行操作 - URL参数 15.91. 对分支执行操作 - 响应码 15.92. 获得一个分支的所有活动节点 - URL参数 15.93. 获得一个分支的所有活动节点 - 响应码 15.94. 获取分支列表 - URL参数 15.95. 获取分支列表 - 响应码 15.96. 查询分支 - 响应码 15.97. 获取分支的变量列表 - URL参数 15.98. 获取分支的变量列表 - 响应码 15.99. 获得分支的一个变量 - URL参数 15.100. 获得分支的一个变量 - 响应码 15.101. 新建(或更新)分支变量 - URL参数 15.102. 新建(或更新)分支变量 - 响应码 15.103. 更新分支变量 - URL参数 15.104. 更新分支变量 - 响应码 15.105. 创建一个二进制变量 - URL参数 15.106. 创建一个二进制变量 - 响应码 15.107. 更新已经已存在的二进制分支变量 - URL参数 15.108. 更新已经已存在的二进制分支变量 - 响应码 15.109. 获取任务 - URL参数 15.110. 获取任务 - 响应码 15.111. 任务列表 - URL参数 15.112. 任务列表 - 响应码 15.113. 查询任务 - 响应码 15.114. 更新任务 - 响应码 15.115. 操作任务 - 响应码 15.116. >删除任务 - URL参数 15.117. >删除任务 - 响应码 15.118. 获得任务的变量 - URL参数 15.119. 获得任务的变量 - 响应码 15.120. 获取任务的一个变量 - URL参数 15.121. 获取任务的一个变量 - 响应码 15.122. 获取变量的二进制数据 - URL参数 15.123. 获取变量的二进制数据 - 响应码 15.124. 创建任务变量 - URL参数 15.125. 创建任务变量 - 响应码 15.126. 创建二进制任务变量 - URL参数 15.127. 创建二进制任务变量 - 响应码 15.128. 更新任务的一个已有变量 - URL参数 15.129. 更新任务的一个已有变量 - 响应码 15.130. 更新一个二进制任务变量 - URL参数 15.131. 更新一个二进制任务变量 - 响应码 15.132. 删除任务变量 - URL参数 15.133. 删除任务变量 - 响应码 15.134. 删除任务的所有局部变量 - URL参数 15.135. 删除任务的所有局部变量 - 响应码 15.136. 获得任务的所有IdentityLink - URL参数 15.137. 获得任务的所有IdentityLink - 响应码 15.138. 获得一个任务的所有组或用户的IdentityLink - URL参数 15.139. 获得一个任务的所有组或用户的IdentityLink - 响应码 15.140. 为任务创建一个IdentityLink - URL参数 15.141. 为任务创建一个IdentityLink - 响应码 15.142. 删除任务的一个IdentityLink - URL参数 15.143. 删除任务的一个IdentityLink - 响应码 15.144. 为任务创建评论 - URL参数 15.145. 为任务创建评论 - 响应码 15.146. 获得任务的所有评论 - URL参数 15.147. 获得任务的所有评论 - 响应码 15.148. 获得任务的一个评论 - URL参数 15.149. 获得任务的一个评论 - 响应码 15.150. 删除任务的一条评论 - URL参数 15.151. 删除任务的一条评论 - 响应码 15.152. 获得任务的所有事件 - URL参数 15.153. 获得任务的所有事件 - 响应码 15.154. 获得任务的一个事件 - URL参数 15.155. 获得任务的一个事件 - 响应码 15.156. 为任务创建一个附件,包含外部资源的链接 - URL参数 15.157. 为任务创建一个附件,包含外部资源的链接 - 响应码 15.158. 为任务创建一个附件,包含附件文件 - URL参数 15.159. 为任务创建一个附件,包含附件文件 - 响应码 15.160. 获得任务的所有附件 - URL参数 15.161. 获得任务的所有附件 - 响应码 15.162. 获得任务的一个附件 - URL参数 15.163. 获得任务的一个附件 - 响应码 15.164. 获取附件的内容 - URL参数 15.165. 获取附件的内容 - 响应码 15.166. 删除任务的一个附件 - URL参数 15.167. 删除任务的一个附件 - 响应码 15.168. 获得历史程实例 - 响应码 15.169. 历史程实例列表 - URL参数 15.170. 历史程实例列表 - 响应码 15.171. 查询历史程实例 - 响应码 15.172. 响应码 15.173. 响应码 15.174. 获取历史程实例变量的二进制数据 - 响应码 15.175. 获得单独历史任务实例 - 响应码 15.176. 获取历史任务实例 - URL参数 15.177. 获取历史任务实例 - 响应码 15.178. 查询历史任务实例 - 响应码 15.179. 响应码 15.180. 响应码 15.181. 获取历史任务实例变量的二进制值 - 响应码 15.182. 获取历史活动实例 - URL参数 15.183. 获取历史活动实例 - 响应码 15.184. 查询历史活动实例 - 响应码 15.185. 列出历史变量实例 - URL参数 15.186. 列出历史变量实例 - 响应码 15.187. 查询历史变量实例 - 响应码 15.188. 获取历史任务实例变量的二进制值 - 响应码 15.189. 获取历史细节 - URL参数 15.190. 获取历史细节 - 响应码 15.191. 查询历史细节 - 响应码 15.192. 获取历史细节变量的二进制数据 - 响应码 15.193. 获取表单数据 - URL参数 15.194. 获取表单数据 - 响应码 15.195. 提交任务表单数据 - 响应码 15.196. 表列表 - 响应码 15.197. 获得一张表 - URL参数 15.198. 获得一张表 - 响应码 15.199. 获得表的列信息 - URL参数 15.200. 获得表的列信息 - 响应码 15.201. 获得表的行数据 - URL参数 15.202. 获得表的行数据 - UR

4,328

社区成员

发帖
与我相关
我的任务
社区描述
多媒体/设计 Flex
社区管理员
  • Flex
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧