- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章C#实现附件上传和下载功能由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
通常情况下,我们会遇到各种上传附件的情况,以及上传后需要下载,文档格式各种各样,当然这个过程中也是报不同错误,还是一个原则,具体问题,具体分析:需求图:
上传代码实现: aspx代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
<
asp:Panel
ID
=
"Panel5"
runat
=
"server"
>
<
fieldset
>
<
legend
>整体活动效果:</
legend
>
<
nav
class
=
"navbar navbar-default"
role
=
"navigation"
>
<
table
cellspacing
=
"0"
class
=
"table table-hover"
border
=
"0"
style
=
"border-collapse: collapse;"
>
<
tbody
>
<
tr
>
<
td
><
strong
>需求单名称</
strong
></
td
>
<
td
colspan
=
"2"
>
<
strong
>添加附件</
strong
>
</
td
>
<
td
>附件名称</
td
>
</
tr
>
<
tr
>
<
td
><
asp:Literal
ID
=
"LtOrder"
runat
=
"server"
></
asp:Literal
></
td
>
<
td
>
<
asp:Button
style
=
"margin-right: -55px;"
ID
=
"btnImport"
runat
=
"server"
Text
=
"添加附件"
class
=
"btn btn-default"
OnClick
=
"btnImport_Click"
/></
td
>
<
td
class
=
"Up_file"
>
<
asp:FileUpload
ID
=
"UpLoadTxt"
runat
=
"server"
class
=
"form-control"
/>
</
td
>
<
td
>
<
asp:Literal
ID
=
"LAccessory"
runat
=
"server"
></
asp:Literal
>
</
td
>
</
tr
>
</
tbody
>
</
table
>
</
nav
>
</
fieldset
>
</
asp:Panel
>
|
cs代码: 。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
|
#region///上传,文件名称添加数据库,文件保存相应路径
/// <summary>
/// 添加附件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected
void
btnImport_Click(
object
sender, EventArgs e)
{
string
res =
"0"
;
string
fileName = UpLoadTxt.FileName;
//获取要导入的文件名
if
(fileName ==
null
|| fileName ==
""
)
{
res =
"2"
;
}
else
{
string
savePath = Server.MapPath(
"~/UploadFiles/ChatLog/"
);
FileOperatpr(fileName, savePath);
string
url = savePath + fileName;
UpLoadTxt.SaveAs(url);
SqlConnection conn = SqlHelperEx.ConnOpen(
"SPSDB"
);
string
ExtName = getFileExt(fileName).ToUpper();
//获取上传文件名称
// string ENDNmae = getFileEND(fileName).ToUpper(); //后缀名
id = Request[
"id"
];
res = GetAccessory(conn, fileName, id);
SqlHelperEx.ConnClose(conn);
}
if
(res ==
"2"
)
{
Response.Write(
"<script>alert('没有要添加的文件,请选中文件后再操作!');window.location.href='SNSNeedingOrder_InfoListView.aspx?id="
+ Request[
"id"
] +
"';</script>"
);
}
if
(res ==
"0"
)
{
Response.Write(
"<script>alert('添加失败!');window.location.href='SNSNeedingOrder_InfoListView.aspx?id="
+ Request[
"id"
] +
"';</script>"
);
}
if
(res==
"1"
) {
Response.Write(
"<script>alert('添加成功!');window.location.href='SNSNeedingOrder_InfoListView.aspx?id="
+ Request[
"id"
] +
"';</script>"
);
}
if
(res ==
"3"
)
{
Response.Write(
"<script>alert('没有需求单,非法操作!');window.location.href='SNSNeedingOrder_InfoListView.aspx?id="
+ Request[
"id"
] +
"';</script>"
);
}
}
#region 辅助功能
/// <summary>
/// 获取上传文件的后缀名
/// </summary>
/// <param name="fileName"></param>
/// <returns></returns>
private
string
getFileEND(
string
fileName)
{
if
(fileName.IndexOf(
"."
) == -1)
return
""
;
string
[] temp = fileName.Split(
'.'
);
return
temp[temp.Length - 1].ToLower();
}
/// <summary>
/// //获取上传文件的名称
/// </summary>
/// <param name="fileName"></param>
/// <returns></returns>
private
string
getFileExt(
string
fileName)
{
if
(fileName.IndexOf(
"."
) == -1)
return
""
;
string
file =
""
;
string
[] temp = fileName.Split(
new
[] {
"."
}, StringSplitOptions.RemoveEmptyEntries);
file = temp[0].ToLower();
return
file.ToLower();
}
private
void
FileOperatpr(
string
fileName,
string
savePath)
{
if
(!Directory.Exists(savePath))
{
Directory.CreateDirectory(savePath);
}
if
(File.Exists(savePath + fileName))
{
File.Delete(savePath + fileName);
}
}
#endregion
/// <summary>
/// 添加文件名
/// </summary>
/// <param name="conn"></param>
/// <param name="filename"></param>
/// <param name="id"></param>
private
string
GetAccessory(SqlConnection conn,
string
filename,
string
id)
{
string
res =
"0"
;
if
(id ==
"0"
|| id ==
""
|| id ==
null
)
{
res =
"3"
;
}
else
{
if
(filename ==
null
|| filename ==
""
)
{
res =
"2"
;
}
else
{
string
strOrderID = id;
string
strFileName = filename;
string
strCreateUserId = Session[
"UserName"
].ToString();
StringBuilder strSql =
new
StringBuilder();
// 生成SQL语句;
strSql.AppendFormat(
"INSERT INTO BaseSNSAccessory(OrderID,FileName,CreateUserId) values( {0}"
, Environment.NewLine);
strSql.AppendFormat(
" @OrderID,@FileName,@CreateUserId) {0}"
, Environment.NewLine);
SqlParameter[] parameters = {
new
SqlParameter(
"@OrderID"
, strOrderID),
new
SqlParameter(
"@FileName"
, strFileName),
new
SqlParameter(
"@CreateUserId"
, strCreateUserId),
};
// 执行
int
result = SqlHelperEx.ExecuteNonQuery(strSql.ToString(), conn, parameters);
// 返回
SqlHelperEx.ConnClose(conn);
if
(result == 1)
{
res =
"1"
;
}
else
{
res =
"0"
;
}
}
}
return
res;
}
#endregion
|
下载实现:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
/// <summary>
/// 获取附件
/// </summary>
/// <param name="conn"></param>
/// <param name="id"></param>
public
void
GetAccessory(SqlConnection conn,
string
id)
{
string
strsql =
"SELECT *,(SELECT OrderName FROM Order_Info WHERE IsValid=1 AND id=bs.OrderID AND IsValid=1) AS OrderName FROM BaseSNSAccessory AS bs WHERE bs.IsValid=1 and bs.OrderID="
+id+
" ORDER BY bs.id DESC"
;
DataTable dt = SqlHelperEx.GetDataTable(strsql, conn);
if
(dt.Rows.Count == 0)
{
Ltlog.Text =
"无数据"
;
return
;
}
string
fileName =
""
;
string
str =
""
;
for
(
int
i = 0; i < dt.Rows.Count; i++)
{
fileName = dt.Rows[i][
"FileName"
].ToString();
str +=
"<tr height=\"36\" bgcolor=\"#FFFFFF\">"
;
str +=
"<td>"
+ dt.Rows[i][
"OrderName"
].ToString() +
"</td>"
;
str +=
"<td> <a href='/EcBossWeb/UploadFiles/ChatLog/"
+ fileName +
"' >点击下载:"
+ fileName +
"</a></td>"
;
str +=
" </tr>"
;
}
LtOrdersory.Text = str.ToString();
//string filePath = "";
//FileStream fs = new FileStream(filePath, FileMode.Open); // 设置文件流,filePath为文件路径
//byte[] bytes = new byte[(int)fs.Length];
//fs.Read(bytes, 0, bytes.Length); // 读取
//fs.Close();
//Response.ClearContent(); // 清楚缓冲区所有内容
//Response.ClearHeaders(); // 清楚缓冲区所有头
//Response.ContentType = "application/octet-stream"; // 设置输出流的Http MIME类型
////通知浏览器下载文件而不是打开
//Response.AddHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8)); //fileName为需要下载的文件名
//Response.BinaryWrite(bytes); // 写入输入流
//Response.Flush(); // 向客户端发送数据流
//Response.End();
}
|
以上就是为大家分享的C#实现附件上传和下载功能的关键代码,希望对大家的学习有所帮助.
最后此篇关于C#实现附件上传和下载功能的文章就讲到这里了,如果你想了解更多关于C#实现附件上传和下载功能的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我没有上传附件以使浏览器正常工作。 一些提示是 here , 其他 there . The docs非常好,但我无法将其转换为 AJAX 上传。 我正在寻找一个 super 简单的 HTML/Java
我有一个应用程序可以收集一些信息并允许用户使用 Android 的 Intent 框架共享这些信息。 到目前为止,它以纯文本形式共享报告:使用 putExtra(Intent.EXTRA_TEXT,
我正在尝试通过我的应用程序发布带有附件图片的消息,所以我使用了以下代码: function yamPost(mytoken) { var msg_Body = jQuery("#myB
我在用户表中使用了多对多关系来使登录用户关注另一个用户,但我自己没有弄清楚,我检查了其他人做了什么,并尝试做类似的事情,并且它有效。在我的方法中,我有: function follow(User $u
我正在用 PHP 创建脚本,其作用是将 IMAP 服务器备份到 MySQL 数据库。 我现在的问题是: 如果电子邮件有附件,附件是嵌入在电子邮件本身中还是服务器上的一个单独文件? 我问的原因是: 我可
我正在使用 RavenDB,在我处理任何附件之前删除了一些带有附件的测试文档,所以我在想它们是否还在磁盘上的某个地方,以及如何轻松地找到它们?。 另一个问题是:当文档被删除时,它有一个附件,附件会被自
当您使用 ACTION_SEND Intent (使用额外的 EXTRA_STREAM)将文件附加到电子邮件时,电子邮件应用程序是否将该附加文件复制到它自己的位置?我的应用程序创建了一个文件并将其附加
所以: // Setup mail class, recipients and body $mailer->AddAttachment('/home/mywebsite/public_html/fil
您好,我需要一个 DnD 解决方案来将 Outlook 邮件附件拖到 Stackpane。 JavaFX/展望 2010 stackpaneDragAndDropZone.setOnDragO
我尝试制作一个 PhpSpreadsheet 文档,然后将他添加到邮件附件中。也许是太热了,但在 phpSpreadsheet 文档中几个小时后,我还没有找到任何东西。 这是我发送邮件的文件 $nam
有什么方法可以动画删除 UITableView 单元格附件吗? 我当前正在显示一个 UITableViewCellAccessoryDisclosureIndicator,但我想在所有可见表格单元格上
我正在编写一个 iPhone 应用程序,它要求我以编程方式发送电子邮件附件。附件是我通过代码创建的 csv 文件。然后,我将文件附加到电子邮件中,附件就会显示在手机上。但是,当我向自己发送电子邮件时,
我正在尝试通过收件箱中的名称“MacroEnabled”访问子文件夹,找到其中的所有附件并将它们保存到本地驱动器。 我使用此代码创建一个名为“Documents”的文件夹并保存附件。然而,在进行第二次
将 corda 升级到版本 4 后,我收到 net.corda.core.transactions.MissingContractAttachments:找不到 com.template.contra
我正在尝试让 Jenkins 将一个或一组文件附加到作业已完成的电子邮件通知中。我不断收到以下错误: 发送电子邮件以触发:成功错误:访问要附加的文件时出错:需要 Ant GLOB 模式,但看到 C:\
我创建了一个由来自 mysql 的数据填充的 UITableView(使用 NSJSONSERIALIZATION)。现在问题是一回事。我检索到的是产品名称。我想要一个附件 View (像单元格右侧的
我开发了一个 Java 客户端应用程序,用于下载我自己的电子邮件。我发现我无法在电子邮件中找到某些附件,特别是当我向经过认证的公司发送电子邮件时收到的作为收据的 XML 文件。我用于下载附件的代码:
我正在将我的 sqlite 数据库转换为 Couchdb。我可以转换数据库并上传到 Couchdb 服务器。除了图像之外的一切。我想将图像作为独立附件上传,我想使用 javascript、REST 和
我编写了一段代码,以便能够启动默认的电子邮件服务提供商,即我的 Outlook。这是我的代码: if(role.getValue().equals("1")) { Desktop desktop =
我正在尝试使用链接上共享的代码使用 python 从 Gmail 下载电子邮件附件 https://gist.github.com/baali/2633554 我想应用时间过滤器+主题过滤器并下载附件
我是一名优秀的程序员,十分优秀!