asp.net实现文件上传,FileUpdate.aspx.cs和FileHandler.ashx代码的注释。

asp.net实现文件上传,FileUpdate.aspx.cs和FileHandler.ashx代码的注释。,第1张

void btnAdd_Click(Object s, EventArgs e){

if (UpFileHasFile){//判断是否存在文件

if (CheckFileType(UpFileFileName)){//判断文件类型

AddFile(UpFileFileName, UpFileFileContent);//调用AddFile方法

rptFilesDataBind();}//数据绑定

}

}

///方法AddFile

///输入参数:文件名fileName,文件流upload

///输出参数:无

private void AddFile(string fileName, SystemIOStream upload)

{

SqlConnection con = new SqlConnection()//新建数据库连接

SqlCommand cmd = new SqlCommand("INSERT File (FileName) Values (@FileName;"+"SELECT @Identity=SCOPE_IDENTITY()", con);//

cmdParametersAddWithValue("@FileName",fileName);//参数赋值

SqlParameter idParm = cmdParametersAdd("Identity",SqlDbTypeInt);

idParmDirection = ParameterDirectionOutput;

using (con){//使用using进行垃圾回收

conOpen();//打开数据库连接

cmdExecuteNonQuery();//执行插入语句

int newFileId = (int)idParmValue;//将idParm的值转换成整形并赋值给newFileID

StoreFile(newFileId,upload, con);//调用保存文件方法

}

}

///保存文件方法StoreFile

///输入参数:文件编号fileID,文件流upload,连接命令connection

/// 输入参数:无

private void StoreFile(int fileId, Stream upload, SqlCommand connection) {

int bufferLen = 8040;//声明变量bufferLen并赋值8040

BinaryReader br = new BinaryReader(upload);//实例化二进制读取器,读取upload流

byte[] chunk = brReadBytes(bufferLen);//从流中读入bufferLen个字节数组,并使当前位置提升bufferLen,存入chunk数组中

SqlCommand cmd = new SqlCommand("UPDATE File SET FileBytes=@Buffer WHERE FileId=@FileId", connection);

cmdParametersAddWithValue(@FileId, fileId);//参数赋值

cmdParametersAdd("@Buffer", SqlDbTypeVarBinary, bufferLen)Value = chunk;//参数赋值

cmdExecuteNonQuery();//执行更新语句

SqlCommand cmdAppend = new SqlCommand("UPDATE File SET FileBytes WRITE(Buffer,Null,0) WHERE FileId=@FileId", connection);

cmdAppendParametersAddWithValue("@FileID", fileId);

cmdAppendParametersAdd("Buffer", SqlDbTypeVarBinary, bufferLen);

chunk = brReadBytes(bufferLen);

while (chunkLength > 0){//循环读取数据流

cmdAppendParameters["@Buffer"]Value = chunk;

cmdAppendExecuteNonQuery();

chunk = brReadBytes(bufferLen);

}

brClose();//关闭BinaryReader

}

我现在的电脑没有安装VS,只能给你点提示,不用ashx,因为ashx要配置webconfig文件。大具实现过程如下:

1新建Aaspx页面。

2访问Aaspx页面,把问号参数带过去,从数据库获取数据。

3Page_Load里 ResponseContentType ="text/xml"

4用ResponseOutputStream,用XmlTextWriter写到ResponseOutputStream

5访问Aaspx响应的就是xml了

用JS 的escape函数转换成字符串,然后用jQuery+ashx的Ajax方式post给ashx文件,ashx里面接收到post的数据以后保存到数据库,各种html内容都能保存(我试过了,没有问题),然后读取的时候直接从数据库读取,不过读取完以后得用js的unescape函数解析一次,譬如你读取出来放到<div id="div1" runat="server"></div>里面,那你后台从数据库读取出来的内容直接用div1innerHTML=公文内容,这时候再在页面写一段JS代码:

<script type="text/javascript">

var divobj = documentgetElementsByID("<%=div1ClientID %>");

divobjinnerHTML = unescape(divobjinnerHTML);

</script>

这样就能正常显示出你的公文了,绝对没有问题,我就是这样做的

你用数据流来将互转,当然会失真!!!你既然用VS那你应该也会用SQL吧,,1,在sql中建个表,专门用来存的名字。2,在VS里连接数据库,并建个images文件夹来村,3,写个根据ID查找的触发器,用fileupload控件浏览要保存的,并保持。引用空间,using SystemIO;

void btnAdd_Click(Object s, EventArgs e){

if (UpFileHasFile){//判断是否存在文件

if (CheckFileType(UpFileFileName)){//判断文件类型

AddFile(UpFileFileName, UpFileFileContent);//调用AddFile方法

rptFilesDataBind();}//数据绑定

}

}

///方法AddFile

///输入参数:文件名fileName,文件流upload

///输出参数:无

private void AddFile(string fileName, SystemIOStream upload)

{

SqlConnection con = new SqlConnection()//新建数据库连接

SqlCommand cmd = new SqlCommand("INSERT File (FileName) Values (@FileName;"+"SELECT @Identity=SCOPE_IDENTITY()", con);//

cmdParametersAddWithValue("@FileName",fileName);//参数赋值

SqlParameter idParm = cmdParametersAdd("Identity",SqlDbTypeInt);

idParmDirection = ParameterDirectionOutput;

using (con){//使用using进行垃圾回收

conOpen();//打开数据库连接

cmdExecuteNonQuery();//执行插入语句

int newFileId = (int)idParmValue;//将idParm的值转换成整形并赋值给newFileID

StoreFile(newFileId,upload, con);//调用保存文件方法

}

}

///保存文件方法StoreFile

///输入参数:文件编号fileID,文件流upload,连接命令connection

/// 输入参数:无

private void StoreFile(int fileId, Stream upload, SqlCommand connection) {

int bufferLen = 8040;//声明变量bufferLen并赋值8040

BinaryReader br = new BinaryReader(upload);//实例化二进制读取器,读取upload流

byte[] chunk = brReadBytes(bufferLen);//从流中读入bufferLen个字节数组,并使当前位置提升bufferLen,存入chunk数组中

SqlCommand cmd = new SqlCommand("UPDATE File SET FileBytes=@Buffer WHERE FileId=@FileId", connection);

cmdParametersAddWithValue(@FileId, fileId);//参数赋值

cmdParametersAdd("@Buffer", SqlDbTypeVarBinary, bufferLen)Value = chunk;//参数赋值

cmdExecuteNonQuery();//执行更新语句

SqlCommand cmdAppend = new SqlCommand("UPDATE File SET FileBytes WRITE(Buffer,Null,0) WHERE FileId=@FileId", connection);

cmdAppendParametersAddWithValue("@FileID", fileId);

cmdAppendParametersAdd("Buffer", SqlDbTypeVarBinary, bufferLen);

chunk = brReadBytes(bufferLen);

while (chunkLength > 0){//循环读取数据流

cmdAppendParameters["@Buffer"]Value = chunk;

cmdAppendExecuteNonQuery();

chunk = brReadBytes(bufferLen);

}

brClose();//关闭BinaryReader

}

另外,虚机团上产品团购,超级便宜

维普文献的导入方法首先要从维普网站下载中心下载filter

并保存到您电脑中的Endnote安装目录下的/filters文件夹里,

下载到硬盘是一个压缩文件,要解开压后,放到filter中。

网址如下:(>

以上就是关于asp.net实现文件上传,FileUpdate.aspx.cs和FileHandler.ashx代码的注释。全部的内容,包括:asp.net实现文件上传,FileUpdate.aspx.cs和FileHandler.ashx代码的注释。、ashx 中接受get传值并返回xml格式数据、公文代码保存的时候以什么形式保存等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/10188509.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存