2015-11-05 3 views
2

мне нужно, чтобы загрузить изображения, которые я хранятся в папке на имя asp.net веб-приложений, как uploadsНевозможно загрузить файлы/изображения из папки дата загрузки в asp.net

я получил функцию, которая должна загрузить это как

private void downloadAnImage(string strImage) 
{ 
    Response.ContentType = "image/jpg"; 
    Response.AppendHeader("Content-Disposition", "attachment; filename=" + strImage); 
    Response.TransmitFile(strImage); 
    Response.End(); 
} 

и я эта функция вызывается из link button как

protected void lnkDwnSlc_Click(object sender, EventArgs e) 
{ 
    if (Session["slc_filepath"] != null) 
    {     
     string path = Server.MapPath(Session["slc_filepath"].ToString()); 
     downloadAnImage(path); 
    } 
} 

, где находится Session["slc_filepath"] путь, сохраненный в session

но после запуска этот файл/изображение не загружается, и у меня нет ошибки о том, почему файл не загружается. И я проверил путь к файлу с помощью breakpoint, это правильно,

Я ищу много форм google, но я не могу понять, где я что-то пропустил.

EDIT: на события загрузки страницы я тянуть записей из таблицы там я сохранил путь файла и в сессии я сохранить его как

Session["slc_filepath"] = dt.Rows[0]["UploadSLC"].ToString(); 

где UploadSLC это имя столбца таблицы, где я хранить путь изображение и в строке базы данных выглядит, как

~\uploads\ab071770-473a-4e1a-8cfc-addeccf565d5.jpg 
+0

обмена Кроме того, как вы назначая путь в сеансе, который будет более полезен. – Prabhat

+0

@SuprabhatBiswal, см. Мое редактирование – Waqas

+0

вставить Response.Flush() до Response.End – jomsk1e

ответ

0

Я нашел ответ после долгих поисков, но намек. я получил от моего младшего в моей команде я действительно ценю это, я просто добавил

ScriptManager scriptManager = ScriptManager.GetCurrent(this.Page); 
      scriptManager.RegisterPostBackControl(this.lnkDwnSlc); 

в pageLoad случае, потому что я использую панель обновления л и менеджер сценария в моей странице ASPX и бутстрапе для дизайна, так он перестал функциональность

После этого он работает как шарм,

благодарит всех ваших усилий и поддержки,

0

Попробуйте это:

private void downloadAnImage(string strImage) 
{ 
    Response.Clear(); 
    Response.ContentType = "image/jpg"; 
    Response.AppendHeader("Content-Disposition", "attachment; filename=" + strImage); 
    Response.TransmitFile(strImage); 
    Response.Flush(); 
    Response.End(); 
} 

Рад помочь вам!

+0

спасибо за ваше время, но не работал, тот же result – Waqas

+0

Вы используете панели ajax для этого? –

+0

да я использовал панель обновления ... – Waqas

0

Предлагаю устранить проблему, из которой она возникла.

  1. Попробуйте жёстко прописанные пути (чтобы убедиться, что вы передаете правильный путь)

    //try forward or back slash, make sure the file exists 
    string path = Server.MapPath("~/uploads/ab071770-473a-4e1a-8cfc-addeccf565d5.jpg"); 
    
  2. Попробуйте это:

    private void downloadAnImage(string strImage) 
    { 
        Response.ContentType = "image/jpg"; 
        Response.AppendHeader("Content-Disposition", "attachment; filename=" + strImage); 
        Response.TransmitFile(strImage); 
        Response.Flush(); 
        Response.End(); 
    } 
    
  3. Убедитесь, что нет Javascript ошибки, которая будучи брошенным на стороне клиента.

0

Пожалуйста, исправьте путь изображения при связывании с базой данных

как "~/Image/images.PNG".

PFB кода моего фрагмента, который вы, возможно, должны решить.

защищенный void Page_Load (отправитель объекта, EventArgs e) { Сессия ["slc_filepath"] = "~/Изображение/изображения.PNG "; }

protected void LinkButton1_Click(object sender, EventArgs e) 
    { 
     string path = Server.MapPath(Session["slc_filepath"].ToString()); 
     downloadAnImage(path); 
    } 

    private void downloadAnImage(string strImage) 
    { 
     Response.ContentType = "image/jpg"; 
     Response.AppendHeader("Content-Disposition", "attachment; filename=" + strImage); 
     Response.TransmitFile(strImage); 
     Response.End(); 
    } 
Смежные вопросы