Загрузить изображение в ASP.NET

0

У меня есть контроль над загрузкой и окно с изображениями. Когда я загружаю изображение, мне нужно показать его в поле. Мое изображение загружается, но не отображается в поле.

Путь загруженного изображения возвращается следующим образом.

~/Фотографии/студент/Student1.jpg

Как мне получить путь как

Фотографии/студент/Student1.jpg

Моя клиентская функция для загрузки выглядит следующим образом.

$.ajaxFileUpload({
                        url: 'FileUpload.ashx?id=' + FileFolder + '&Mainfolder=Photos' + '&parentfolder=Student',
                        secureuri: false,
                        fileElementId: 'uplPhoto',
                        dataType: 'json',
                        success: function (data, status) {

                            if (typeof (data.error) != 'undefined') {
                                if (data.error != '') {
                                    alert(data.error);
                                } else {

                                    $('#hdnFullPhotoPath').val(data.upfile);
                                    $('#uplPhoto').val("");
                                    $('#lblPhotoName').text('Photo uploaded successfully')

                                    $('#Image1').attr('src', data.upfile);
                                    alert(data.upfile);
                                }
                            }


                        },
                        error: function (data, status, e) {
                            alert(e);
                        }
                    });
                }

                else {
                    alert('The photo ' + filename + ' already exists');
                    return false;
                }
            }
        }
        else {
            alert('You can upload only jpg,jpeg,pdf,doc,docx,txt,zip,rar extensions files.');
        }
        return false;

    }
Теги:

2 ответа

0
Лучший ответ

В файле FileUpload.ashx:

Dim fileName As String = System.IO.Path.GetFileName(FileUpload1.PostedFile.FileName)
FileUpload1.PostedFile.SaveAs(Server.MapPath(("~/Photos/Student/" + fileName)))

И добавьте элемент управления изображением в свою форму и вызовите его из codebehind, как показано, сохраните имя каталога в некотором значении сеанса и получите его

Image1.ImageUrl = "~/Photos/Student/" & Session("tempDir").ToString & "/" & filename
0

Все, спасибо за ваше время и помощь! Проблема с тильдой (~) - путь к файлу не был распознан. Поэтому я изменил свой код, чтобы заменить его пустым пространством.

var orgpath = data.upfile;
var photopath = orgpath.replace('~/', '');
$('#<%= ImgFacultyPhoto.ClientID%>').attr('src', photopath);
  • 0
    Вы действительно знаете, для чего используется символ ~ ? Он предназначен для обозначения корня текущего приложения ASP.NET, поэтому вы, вероятно, захотите запустить VirtualPathUtility.ToAbsolute(orgpath) вместо удаления ~ . Очевидно, что это можно сделать только на стороне сервера, поскольку это код .NET, а не jQuery.
  • 0
    @ Freefaller, я это знаю. Я работаю с клиентом, так как не хочу, чтобы страница была отправлена обратно.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню