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格式数据、公文代码保存的时候以什么形式保存等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)