将文件上传到Blob&得到错误:C:\ Program Files(x86)\ IIS Express \

时间:2016-08-12 07:26:27

标签: asp.net azure-storage-blobs

我尝试将文件上传到blob。但我得到的错误是这样的:

  

"' C:\ Program Files(x86)\ IIS   表达\主格-人员入境表格-Stu.docx'"

我在代码中没有使用HttpPostedFileBase。我只是通过要上传的文件将对象传递给我的控制器。租约告诉我,我做错了什么? 我想知道wt这行意味着:

  

" blockBlob.Properties.ContentType ="

这是我的代码:

        public static SaveResponses CreateFile(Blob_Storage_Header docDetails)
    {

        string storageConnectionString = ConfigurationManager.ConnectionStrings["StorageConnectionString"].ConnectionString.ToString();

        CloudStorageAccount storageAccount = CloudStorageAccount.Parse(storageConnectionString);


        CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();


        CloudBlobContainer container = blobClient.GetContainerReference("test2");


        ICollection<Blob_Storage_Details> BlobStorageDetails = docDetails.Blob_Storage_Details;
        if (BlobStorageDetails.Count > 0) {
            foreach (Blob_Storage_Details item in BlobStorageDetails)
            {
                string DocUUID = Guid.NewGuid().ToString();
                CloudBlockBlob blockBlob = container.GetBlockBlobReference(DocUUID + item.Blob_Name);
                var fileName = Path.GetFileName(item.Blob_Name);
                //blockBlob.Properties.ContentType = item.ContentType;
                // Create or overwrite the "myblob" blob with contents from a local file.
                using (var fileStream = File.OpenRead(fileName))
                {
                    blockBlob.UploadFromStream(fileStream);
                }
            }
        }



        SaveResponses saveResponse = new SaveResponses();
        saveResponse.saveStatus = "true";
        saveResponse.messageType = "success";
        saveResponse.message = "File Create message"; 

        return (saveResponse);
    }

1 个答案:

答案 0 :(得分:0)

  

&#34;&#39; C:\ Program Files(x86)\ IIS Express \ Nominative-Officers-Entry-Form-Stu.docx&#39;。&#34;

根据你的代码,我在我身边运行它,然后我收到以下错误:

enter image description here

备注:在开发环境中,您可以在Web.config文件的system.web节点中添加“&lt; customErrors mode =&#34; Off&#34; /&gt;”,然后您可以查看详细错误

根据此错误,我检查并发现指定的文件路径不存在。 经过一些试验,我把问题解决了。请按照以下说明检查您的代码,看看它是否有效:

a)请注意代码“Path.GetFileName”,它返回指定路径字符串的文件名和扩展名(例如settings.job)。
b)确保“File.OpenRead(fileName)”中使用的文件名是绝对文件路径,并且该文件存在于您的环境中。

  

&#34; blockBlob.Properties.ContentType =&#34;

Azure存储客户端库for .NET基于Storage Service REST API, 从官方文档中我们可以发现“blockBlob.Properties.ContentType”表示blob的MIME内容类型,默认类型是application / octet-stream。

MIME是一种根据互联网的性质和格式识别互联网上文​​件的方法。例如,使用&#34;内容类型&#34;在HTTP响应中定义的头值,浏览器可以使用适当的扩展名/插件打开文件。有关MIME的更多详细信息,请参阅此链接:http://www.freeformatter.com/mime-types-list.html