почему значок изображения пустой / белый, когда fileupload.saveas - PullRequest
0 голосов
/ 30 декабря 2011

я использую vb.net

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

Если я нажму на «Показать все файлы», изображение появится, но значок изображения будет пустым или белым, как на изображении ниже.

, поэтому я нажимаю на это изображение и нажимаю «включить его впроект ", однако, это не должно быть случаем, что я каждый раз загружаю изображение, мне нужно повторить это снова

, так как я должен позволить не отображать белый значок и всегда появляться взагрузить папку, когда я загружаю изображение вместо того, чтобы вручную нажимать на изображение, чтобы включить в него?

это мой код

 Protected Sub uploadImage()
    Dim filename As String = FileUploadImg.FileName
    Dim fileType As String = filename.Substring(filename.Length - 4).ToLower()
    If (fileType = ".gif") Or (fileType = ".jpg") Or (fileType = ".png") Then
        FileUploadImg.SaveAs("C:\Users\Jane\Desktop\project\FileUpload\FileUpload\WebRole1\images\" & txtboxName.Text & "_" & FileUploadImg.FileName)
    Else
        MsgBox("failed")

    End If
End Sub

Protected Sub btnSubmit_Click(sender As Object, e As EventArgs) Handles btnSubmit.Click
       uploadImage()

        'End If
    End Sub

это изображение того, как оно выглядит

blank icon

Ответы [ 2 ]

1 голос
/ 30 декабря 2011

Необходимо сохранить опубликованный файл в постоянном хранилище на веб-сервере и сопоставить файлы с некоторым URL-адресом, чтобы к ним можно было получить доступ из Интернета.

В среде Azure локальный диск (например, c:) не сохраняется (представьте себе несколько веб-ролей - как вы можете обслуживать одно и то же изображение из других экземпляров).

Решением является хранилище BLOB-объектов Azure (необходимо настроить в консоли управления Azure) и загрузить опубликованный файл в контейнер хранилища BLOB-объектов.

// Setup the connection to Windows Azure Storage
var storageAccount = CloudStorageAccount.FromConfigurationSetting("DataConnectionString");
var blobClient = storageAccount.CreateCloudBlobClient();

// Get and create the container
var blobContainer = blobClient.GetContainerReference("public-images");
blobContainer.CreateIfNotExist();

    // Allow blob to be downloaded
    containerPermissions = new BlobContainerPermissions();
    containerPermissions.PublicAccess = BlobContainerPublicAccessType.Blob;
    blobContainer.SetPermissions(containerPermissions);

// Get the target blob reference
var blobAddressUri = String.Format("{0}{1}", fileName); //create random fileName here
var blob = BlobContainer.GetBlobReference(blobAddressUri);

// Set blob Content-Type
blob.Properties.ContentType = FileUploadImg.PostedFile.ContentType ;

// Upload to the blob storage account
blob.UploadFromStream(FileUploadImg.FileContent);

Ваш файл теперь доступен на blob.Uri.

0 голосов
/ 30 декабря 2011

Вы должны указать каталог, в который будут помещены ваши загрузки.Например, если я создаю новый проект в C: \, Website1, директория будет C: \ Website1.Затем я создал бы каталог для хранения загрузок: C: \ Website1 \ uploads и обязательно установил бы права на чтение / запись для учетной записи IIS.Затем я бы сделал:

string uploadPath = MapPath( "pictures\\" );
this.fileUpload1.SaveAs( uploadPath + this.fileUpload1.FileName );

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...