我使用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
这是它的样子的图像
答案 0 :(得分:1)
您必须将已发布的文件保存到Web服务器上的持久存储中,并将文件映射到某个URL,以便可以从Internet访问它们。
在Azure环境中,本地磁盘(如c:
)不会保留(想象多个Web角色 - 如何从其他实例提供相同的图像)。
解决方案是Azure Blob存储(您必须在Azure管理控制台中set-up)并将发布的文件上传到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
处提供。
答案 1 :(得分:0)
您必须指定一个上传目录。例如,如果我在C:\,Website1中创建一个新项目,则direcotry将是C:\ Website1。然后我创建一个目录来存储上传:C:\ Website1 \ uploads并确保为IIS帐户设置读/写权限。然后我会这样做:
string uploadPath = MapPath( "pictures\\" );
this.fileUpload1.SaveAs( uploadPath + this.fileUpload1.FileName );
一旦文件在上传目录中,我就可以将它移动到我喜欢的任何地方。