网站首页 > 精选文章 正文
用户用input选择了一个文件,点击按钮上传到服务器上,并返回相关信息的函数:
/// <summary>
/// 将本地文件从 HtmlInputFile 控件上传到服务器上
/// </summary>
public class UploadFileFormHtmlInputFile
{
/// <summary>
/// 将本地文件从 HtmlInputFile 控件上传到服务器上
/// <para>--------------说明------------------</para>
/// <para>限制大小问题 system.web 下 httpRuntime executionTimeout="800" maxRequestLength="40960" useFullyQualifiedRedirectUrl="false"</para>
/// <para>string[] xx = GO(HtmlInputFileID, "\\Resourse\\image\\userdata\\","jpg|gif",true);</para>
/// <para>注意:如果上传失败,xx[0]为"error",xx[1]为错误原因!</para>
/// <para>xx[0]:新文件名</para>
/// <para>xx[1]:文件类型(文件后缀名)</para>
/// <para>xx[2]:文件大小</para>
/// <para>xx[3]:文件上传前的名字</para>
/// <para>xx[4]:文件物理路径</para>
/// <para>xx[5]:文件相对服务器的路径</para>
/// <para>--------------------------------------</para>
/// </summary>
/// <param name="file">htmlinputfile的id</param>
/// <param name="ServerDir">服务器上的文件夹名称如 "Resourse\\image\\userdata\\"</param>
/// <param name="TypeString">允许上传的类型如"jpg|gif|png|txt",""为不限制</param>
/// <param name="ChangeFileName">是否改名,默认修改,即为true</param>
/// <param name="NewFileName">指定文件的新名字 不要带扩展名,如"abc"</param>
/// <returns></returns>
public string[] GO(HtmlInputFile file, string ServerDir, string TypeString, bool ChangeFileName, string NewFileName)
{
Thread.Sleep(100);
string[] arr = new String[6];
try
{
if (file.PostedFile.ContentLength <= 0)
{
arr[0] = "error";
arr[1] = "没有文件!";
return arr;
}
int pos = file.PostedFile.FileName.LastIndexOf(".") + 1;
string postFileName = file.PostedFile.FileName.Substring(pos, file.PostedFile.FileName.Length - pos); ;
TypeString = TypeString.ToLower();
if (TypeString.Length != 0 & TypeString.IndexOf(postFileName) == -1)
{
arr[0] = "error";
arr[1] = "允许上传类型:" + TypeString + " 当前类型:" + postFileName;
return arr;
}
string FileOrginName = file.PostedFile.FileName.Substring(file.PostedFile.FileName.LastIndexOf("\\") + 1);
string FileName = FileOrginName.Substring(0, pos - 1);
if (ChangeFileName)
{
if (NewFileName.Length == 0)
{
Random r = new Random();
int newstr = r.Next(0, 500);
FileName = DateTime.Now.ToString("yyyyMMddhhmmssffff") + newstr.ToString();
}
else
{
FileName = NewFileName;
}
}
string FilePath = System.Web.HttpContext.Current.Server.MapPath("~") + ServerDir.ToString();
if (!System.IO.Directory.Exists(FilePath))
{
System.IO.Directory.CreateDirectory(FilePath);
}
file.PostedFile.SaveAs(FilePath + FileName + "." + postFileName); //存储指定的文件到指定的目录
double unit = 1024;
double size = Math.Round(file.PostedFile.ContentLength / unit, 2);
arr[0] = FileName + "." + postFileName; //新文件名
arr[1] = postFileName; //文件类型(文件后缀名)
arr[2] = size.ToString(); //文件大小
arr[3] = FileOrginName; //文件上传前的名字
arr[4] = FilePath + FileName + "." + postFileName; //文件路径
arr[5] = "\\" + ServerDir + FileName + "." + postFileName; //相对服务器的文件路径
return arr;
}
catch (Exception ErrMsg)
{
arr[0] = "error";
arr[1] = ErrMsg.ToString();
return arr;
}
}
}
使用方法:
修改上传大小限制可以去web.config文件中修改
system.web 下 httpRuntime executionTimeout="800" maxRequestLength="40960"
useFullyQualifiedRedirectUrl="false"
//下面是调用方法
string[] xx = GO(HtmlInputFileID, "\\Resourse\\image\\userdata\\","jpg|gif",true);
//返回值说明:
xx[0]:新文件名
xx[1]:文件类型(文件后缀名)
xx[2]:文件大小
xx[3]:文件上传前的名字
xx[4]:文件物理路径
xx[5]:文件相对服务器的路径
- 上一篇: C#上传大型视频文件到服务器,解决方案
- 下一篇: WEB上传大型视频文件到服务器,解决方案
猜你喜欢
- 2025-05-02 AspNetCore中的文件上传与下载优化
- 2025-05-02 Xshell上传文件到Linux服务器(xshell传输文件到本地)
- 2025-05-02 WEB上传大型视频文件到服务器,解决方案
- 2025-05-02 C#上传大型视频文件到服务器,解决方案
- 2025-05-02 新手本地文件上传至阿里云服务器(怎么把文件传到阿里云服务器)
- 2025-05-02 如何上传文件到nginxweb服务器(如何上传文件到nginxweb服务器状态)
- 2025-05-02 文件上传漏洞学习笔记—原理、危害、解析、绕过、编辑器、服务器
- 2025-05-02 往服务器上传大文件(往服务器上传文件导致ssh挂了怎么办)
- 2025-05-02 文件在线传输工具,点对点传输,无需上传至服务器
- 2025-05-02 netty系列之:搭建HTTP上传文件服务器
- 最近发表
- 标签列表
-
- 向日葵无法连接服务器 (32)
- git.exe (33)
- vscode更新 (34)
- dev c (33)
- git ignore命令 (32)
- gitlab提交代码步骤 (37)
- java update (36)
- vue debug (34)
- vue blur (32)
- vscode导入vue项目 (33)
- vue chart (32)
- vue cms (32)
- 大雅数据库 (34)
- 技术迭代 (37)
- 同一局域网 (33)
- github拒绝连接 (33)
- vscode php插件 (32)
- vue注释快捷键 (32)
- linux ssr (33)
- 微端服务器 (35)
- 导航猫 (32)
- 获取当前时间年月日 (33)
- stp软件 (33)
- http下载文件 (33)
- linux bt下载 (33)