Flex上传图片等信息到数据库并下载显示图片.docx
- 文档编号:4571339
- 上传时间:2022-12-06
- 格式:DOCX
- 页数:11
- 大小:20.78KB
Flex上传图片等信息到数据库并下载显示图片.docx
《Flex上传图片等信息到数据库并下载显示图片.docx》由会员分享,可在线阅读,更多相关《Flex上传图片等信息到数据库并下载显示图片.docx(11页珍藏版)》请在冰豆网上搜索。
Flex上传图片等信息到数据库并下载显示图片
Flex上传图片等信息到数据库,并下载显示图片
2011-11-1419:
51186人阅读评论(0)收藏举报
1.上传到SqlServer
功能为上传漫画至SqlServer,先上传非二进制图片信息(漫画编号,卷数,本卷图片编号),上传成功后根据返回的自增
主键再上传二进制图片.
采用FluorineFx调用RemoteObject操作数据库,上传图片则采用FileReference上传到UploadManHua.ashx
C#端远程服务类
ManHuaService.cs
Code
--
CodehighlightingproducedbyActiproCodeHighlighter(freeware)
http:
//www.CodeH
-->using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Data.SqlClient;
using FluorineFx;
using FluorineFx.AMF3;
namespace ServiceLibrary
{
[RemotingService("man hua service")]
public class ManHuaService
{
[DataTableType("ServiceLibrary.ManHuaTuPian")]
///
/// 获得一张漫画图片
///
/// 漫画编号
/// 卷数
/// 图片顺序号
///
public ManHuaTuPian GetOneManHuaTuPian(int ManHuaID, int JuanShu, int BenJuanTuPianXH)
{
SqlConnection con = new SqlConnection("server=.;uid=sa;pwd=;database=ManHuaLiuLan");
con.Open();
SqlCommand cmd = new SqlCommand("select * from ManHuaTuPian where ManHuaID=" + ManHuaID.ToString() + " and JuanShu=" + JuanShu.ToString() + " and BenJuanTuPianXH=" + BenJuanTuPianXH.ToString(), con);
SqlDataAdapter dap = new SqlDataAdapter(cmd);
DataTable tb = new DataTable();
dap.Fill(tb);
con.Close();
if (tb.Rows.Count > 0)
{
ManHuaTuPian objManHua = new ManHuaTuPian();
objManHua.ID = int.Parse(tb.Rows[0]["ID"].ToString());
objManHua.ManHuaID = int.Parse(tb.Rows[0]["ManHuaID"].ToString());
objManHua.JuanShu = int.Parse(tb.Rows[0]["JuanShu"].ToString());
objManHua.BenJuanTuPianXH = int.Parse(tb.Rows[0]["BenJuanTuPianXH"].ToString());
byte[] bytes = (byte[])tb.Rows[0]["TuPian"];
ByteArray imagebytes = new ByteArray();
imagebytes.WriteBytes(bytes,0,bytes.Length);
objManHua.TuPian = imagebytes;
return objManHua;
}
else
return null;
}
///
/// 插入一张漫画图片
///
/// 漫画编号
/// 卷数
/// 本卷图片序号
///
public int InsertManHua(int ManHuaID,int JuanShu,int BenJuanTuPianXH)
{
SqlConnection con = new SqlConnection("server=.;uid=sa;pwd=;database=ManHuaLiuLan");
con.Open();
SqlCommand cmd = new SqlCommand();
cmd.Connection = con;
cmd.CommandText = "insert into ManHuaTuPian(ManHuaID,JuanShu,BenJuanTuPianXH) values(@ManHuaID,@JuanShu,@BenJuanTuPianXH)\r\nselect scope_identity()";
SqlParameterCollection sqlParams = cmd.Parameters;
sqlParams.Add("@ManHuaID", SqlDbType.Int);
sqlParams.Add("@JuanShu", SqlDbType.Int);
sqlParams.Add("@BenJuanTuPianXH", SqlDbType.Int);
sqlParams[0].Value = ManHuaID;
sqlParams[1].Value = JuanShu;
sqlParams[2].Value = BenJuanTuPianXH;
int identityID;
identityID = int.Parse(cmd.ExecuteNonQuery().ToString());
con.Close();
con.Dispose();
return identityID;
}
///
/// 更新漫画图片
///
/// 漫画图片编号
/// 二进制图片字节数组
///
public void UpdateManHuaTuPian(int ID, byte[] imagebytes)
{
SqlConnection con = new SqlConnection("server=.;uid=sa;pwd=;database=ManHuaLiuLan");
con.Open();
SqlCommand cmd = new SqlCommand("update ManHuaTuPian set TuPian=@TuPian where ID=@ID", con);
cmd.Parameters.Add(new SqlParameter("@TuPian", imagebytes));
cmd.Parameters.Add(new SqlParameter("@ID", ID));
cmd.ExecuteNonQuery();
con.Close();
con.Dispose();
}
}
}
1.上传二进制和其它信息到数据库
上传界面
UploadManHua.mxml:
Code
--
CodehighlightingproducedbyActiproCodeHighlighter(freeware)
http:
//www.CodeH
-->
xml version="1.0" encoding="utf-8"?
>
Application xmlns: mx=" layout="absolute" fontSize="12"> RemoteObject id="ManHuaService" destination="fluorine" source="ServiceLibrary.ManHuaService"> method name="InsertManHua" result="InsertManHua_onResult(event)" fault="InsertManHua_onFault(event)"> method> RemoteObject> Script> [CDATA[ import mx.rpc.events.FaultEvent; import mx.rpc.events.ResultEvent; import mx.controls.Alert; private var fileRef: FileReference = new FileReference(); private function insertManHua(evt: MouseEvent): void { ManHuaService.InsertManHua(int(txtManHuaID.text),int(txtJuanShu.text),int(txtBenJuanTuPianXH.text)); } private function InsertManHua_onResult(evt: ResultEvent): void { var identityID: int = int(evt.result); lblIdentityID.text = identityID.toString(); } private function InsertManHua_onFault(evt: FaultEvent): void { Alert.show("插入失败! "); } private function pickfile(): void{ var imageTypes: FileFilter = new FileFilter("图片 (*.jpg, *.jpeg)", "*.jpg;*.jpeg;"); var allTypes: Array = new Array(imageTypes); fileRef.addEventListener(Event.SELECT, selectHandler); fileRef.addEventListener(Event.COMPLETE, completeHandler); fileRef.addEventListener(IOErrorEvent.IO_ERROR,ioerrorHandler); fileRef.addEventListener(ProgressEvent.PROGRESS, progressHandler); fileRef.addEventListener("ioError", ioerrorHandler); try{ var success: Boolean = fileRef.browse(allTypes); }catch (error: Error){ trace("Unable to browse for files."+error.toString()); } } private function ioerrorHandler(event: Event): void{ trace("Unable to upload file."+event.toString()); } private function progressHandler(event: ProgressEvent): void{ lblText.text = " 已上传 " + (event.bytesLoaded/1024).toFixed (2)+ " K,共 " + (event.bytesTotal/1024).toFixed (2) + " K"; var proc: uint = event.bytesLoaded / event.bytesTotal * 100; lbProgress.setProgress(proc, 100); lbProgress.label= "当前进度: " + " " + proc + "%"; } private function selectHandler(event: Event): void{ txtPath.text = fileRef.name; } private function completeHandler(event: Event): void{ Alert.show("上传成功"); } private function upload(evt: MouseEvent): void { var request: URLRequest = new URLRequest("http: //localhost: 8012/UploadManHua.ashx"); var variables: URLVariables = new URLVariables(); variables.ID = int(lblIdentityID.text); request.data = variables; try { fileRef.upload(request); } catch (error: Error) { trace("Unable to upload file."+error.toString()); } } ]]> Script> Label x="44" y="10" text="漫画ID: " fontSize="12"/> TextInput x="107" y="10" id="txtManHuaID" text="1"/> Label x="58" y="40" text="卷数: " fontSize="12"/> TextInput x="107" y="40" id="txtJuanShu" text="1"/> Label x="10" y="70" text="本卷图片序号: " fontSize="12"/> TextInput x="107" y="70" id="txtBenJuanTuPianXH"/> Label x="58" y="138" text="图片: " fontSize="12"/> TextInput x="107" y="134" id="txtPath"/> Button x="275" y="134" label="浏览" fontSize="12" click="pickfile()"/> Button x="335" y="134" label="上传" fontSize="12" click="upload(event)"/> ProgressBar id="lbProgress" x="10" y="162" width="457" themeColor="#F20D7A" minimum="0" mode="manual" maximum="100" label="当前进度: 0%" styleName="myfont" fontWeight="normal"/> Label id="lblText" x="10" y="198"/> Button x="107" y="100" label="确认" fontSize="12" click="insertManHua(event)"/> Label x="179.5" y="106" text="记录自增主键: " fontSize="12"/> TextInput x="276.5" y="102" id="lblIdentityID" width="50.5"/> Application> 用于上传C#的ashx,接收文件流,把文件流转换为字节数组byte[],传入ManHuaService进行上传到数据库中. UploadManHua.ashx: Code -- CodehighlightingproducedbyActiproCodeHighlighter(freeware) http: //www.CodeH --><%@ WebHandler Language="C#" Class="UploadManHua" %> using System; using System.Web; using System.Data.SqlClient; using System.IO; public class UploadManHua : IHttpHandler { private string uploadFolder = "UpLoad"; public void ProcessRequest (HttpContext context) { context.Response.ContentType = "text/plain"; //上传文件至SqlServer HttpFileCollection files = context.Request.Files; if (files.Count > 0) { string path = context.Server.MapPath(uploa
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Flex 上传 图片 信息 数据库 下载 显示