У меня есть сайт, на котором мои пользователи могут загружать файлы в свой профиль, но я не хочу, чтобы файлы загружались по прямой ссылке, поэтому я использую ashx.Загрузить файл с помощью ashx in aspx вызывает ошибку тайм-аута
Загрузите файл в App_data, используя ashx. Вот мой код:
int CountFile = 0;
string filename = "";
string path = Server.MapPath("~") + "App_Data";
String[] validext = { ".pdf" ,".doc",".zip"};
string ext = System.IO.Path.GetExtension(FileUpload1.PostedFile.FileName);
//int test = Array.IndexOf(validext, ext.ToLower());
if (Array.IndexOf(validext, ext.ToLower()) < 0)
{
LblMessage.ForeColor = System.Drawing.Color.Red;
LblMessage.Text = "پسوند فایل معتبر نیست";
return;
}
ClsSendEmail objSendEmail=new ClsSendEmail();
string[] Infotmp=new string[12];
string res = ObjRegUser.UploadArticle(Session["UserSession"].ToString(), txtArticleSubject.Text, Value[DDLSubjectGroup.SelectedIndex].ToString());
if (res!="-1")
{
FileUpload1.PostedFile.SaveAs(path + "\\" + res+ext);
ObjRegUser.UpdateArticleLocation(int.Parse(res),res+ext);
string Url = "~/Users/Default.aspx?Message=" + "فایل با موفقیت ارسال شد" + "&" + "State=True";
// Infotmp= ObjRegUser.SelectUserProfile(Session["UserSession"].ToString());
//objSendEmail.SendEmail("تایید ارسال مقاله به همایش ملی سرب و روی ایران",objSendEmail.SuccessArticleUpload(Infotmp[1].ToString()+" "+Infotmp[2].ToString(),txtArticleSubject.Text),Infotmp[6]);
Response.Redirect(Url);
}
else if (res == "-1")
{
string Url = "~/Users/Default.aspx?Message=" + "تعداد فایل ارسالی بیشتر از حد مجاز می باشد " + "&" + "State=False";
Response.Redirect(Url);
}
Но у меня есть большая проблема, когда мои пользователи хотят загружать свои файлы (размер файла большой, медленный интернет) соединение сбрасывается и тайм-аут.
Что мне делать?
вы можете загрузить файл в виде кусков – SpiderCode
Нельзя публиковать код загрузки файлов у пользователей, так как ошибка связана с загрузкой файлов пользователями! –
как я могу это сделать? –