C# 如何使用C从服务器上传和下载文件#
我正在开发一个网页,用户可以下载他们的简历进行编辑。所以我有一个链接来下载这篇文章。我使用以下代码进行下载C# 如何使用C从服务器上传和下载文件#,c#,asp.net,file-upload,download,C#,Asp.net,File Upload,Download,我正在开发一个网页,用户可以下载他们的简历进行编辑。所以我有一个链接来下载这篇文章。我使用以下代码进行下载 DataTable dt = user.getUserDetails(2); user.WriteFileFromDBbyUserArticleID(Server.MapPath(Convert.ToString(dt.Rows[0].ItemArray[0])), Convert.ToInt32(2), "CV"); FileUtil.writeFileToResponse(Server
DataTable dt = user.getUserDetails(2);
user.WriteFileFromDBbyUserArticleID(Server.MapPath(Convert.ToString(dt.Rows[0].ItemArray[0])), Convert.ToInt32(2), "CV");
FileUtil.writeFileToResponse(Server.MapPath(Convert.ToString(dt.Rows[0].ItemArray[0])), Response);
////////////////////////////////////////////////
public void WriteFileFromDBbyUserArticleID(string FilePath, int UserID, string FileType)
{
DataAccessLayer dal = new DataAccessLayer();
string selectQuery = "Select Articles.Users_WriteFileFromDB(?,?,? ) from Articles.Users";
DbParameter[] parm = new DbParameter[3];
parm[0] = dal.GetParameter();
parm[0].ParameterName = "@FilePath";
parm[0].Value = FilePath;
parm[1] = dal.GetParameter();
parm[1].ParameterName = "@UserID";
parm[1].Value = UserID;
parm[2] = dal.GetParameter();
parm[2].ParameterName = "@FileType";
parm[2].Value = FileType;
DataTable dtArticleStatus = dal.ExecuteDataTable(selectQuery, parm);
}
///////////////////////////////////////////////////////////////////////////
static public void writeFileToResponse(string filePath,HttpResponse Response)
{
try
{
string FileName = Path.GetFileName(filePath);
Response.Clear();
Response.AddHeader("Content-Disposition", "attachment; filename=" + FileName);
Response.WriteFile(filePath);
Response.Flush();
File.Delete(filePath);
Response.End();
}
catch (System.Exception ex)
{
}
}
我在“Response.WriteFile(filePath);”行中得到错误,如下所示
sys.webforms.pagerequestManagerparserErrorException:无法分析从服务器收到的消息。此错误的常见原因是当通过调用response.write()修改响应、启用响应筛选器、httpModules或服务器跟踪时。
详细信息:在附近分析时出错
如何修复此问题?您可以使用响应流将文档流回 这可能会让你走
您可以使用响应流将文档流回 这可能会让你走
您正在使用ASP.NET吗?请尝试使用HtmlInputFile进行上载
您正在使用ASP.NET吗?请尝试使用HtmlInputFile进行上载
对于上载文件,您可以使用
asp:FileUpload
控件和简单使用SaveAs
方法。但请注意,如果将它与部分更新对象(asp:UpdatePanel
)结合使用,则必须设置触发器。如果不使用触发器,可以重置控件。对于上载文件,可以使用asp:FileUpload
控件和简单使用SaveAs
方法。但请注意,如果将它与部分更新对象(asp:UpdatePanel
)结合使用,则必须设置触发器。如果您不使用触发器asp:FileUpload
控件可以重置…那么到底是什么问题?应该有信誉评分,允许您投票给用户进行关闭,我会投票给Sakthivel.进行关闭?我能做些什么来避免呢?那么到底是什么问题呢?应该有信誉评分,让你可以投票给用户接近,我会投票给Sakthivel。接近?我能做些什么来避免呢?嗯,我主要是按照题目来做的,因为这个问题有点让人困惑,但是再看一遍,你可能是对的。不管怎样,把这个答案留在这里会帮助其他用户从标题中找到这个问题。嗯,我主要是按照标题来做的,因为这个问题有点让人困惑,但是再看一遍,你可能是对的。不管怎样,把这个答案留在这里将帮助其他用户从标题中找到这个问题。
public class FileHandler : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
if (context.Request["file"] != null)
{
try
{
string file = context.Server.MapPath("~/files/" + context.Request["file"].ToString());
FileInfo fi = new FileInfo(file);
if (fi.Exists)
{
context.Response.ClearContent();
context.Response.AddHeader("Content-Disposition", "attachment; filename=" + fi.Name);
context.Response.AddHeader("Content-Length", fi.Length.ToString());
string fExtn = "video/avi";
context.Response.ContentType = fExtn;
context.Response.TransmitFile(fi.FullName);
context.Response.End();
}
}
catch (Exception ex)
{
Trace.WriteLine(ex.Message);
}
}
}
public bool IsReusable
{
get { return true; }
}
}