簡體   English   中英

asp.net-未設置FileUpload對象參考

[英]asp.net - FileUpload Object Reference Not Set

我正在azure上進行FileUpload,此代碼確實可以正常工作。

string filePath = fileASP.FileName;
            string fileType = fileASP.PostedFile.ContentType;

            string[] cut = filePath.Split('.');

            Array.Reverse(cut);

            CloudStorageAccount storageAccount = new CloudStorageAccount(store, blobUri, queueUri, tableUri);

            CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();

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

            container.CreateIfNotExists();

            container.SetPermissions(new BlobContainerPermissions { PublicAccess = BlobContainerPublicAccessType.Blob });

            Random rand = new Random();
            int randomNum = rand.Next(1, 1000);

            CloudBlockBlob blockBlob = container.GetBlockBlobReference(randomNum.ToString() + "." + cut[0]);
            txtID.Text = randomNum.ToString();

            using (fileASP.PostedFile.InputStream) //System.IO.File.OpenRead(filePath)
            {
                blockBlob.UploadFromStream(fileASP.PostedFile.InputStream);
            }

它運作完美。 但這僅適用於我的虛擬程序。 當我將其傳輸到應用程序時,總是會收到“ Object Reference Not Set to an Instance of an Object的錯誤。 這是我的應用程序代碼:

string filePath = dtiFileUpload.FileName;

            string[] cut = filePath.Split('.');

            Array.Reverse(cut);

            CloudStorageAccount storageAccount = new CloudStorageAccount(wac.Credentials, wac.BlobUri, wac.QueueUri, wac.TableUri);

            CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();

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

            container.CreateIfNotExists();

            Random rand = new Random();
            int randomNum1 = rand.Next(1000, 99999);
            int randomNum2 = rand.Next(1000, 99999);

            string path = "http://cspdemo.blob.core.windows.net/mycontainer/ClearanceDTI-" + randomNum1 + randomNum2 + "." + cut[0];

            container.SetPermissions(new BlobContainerPermissions { PublicAccess = BlobContainerPublicAccessType.Blob });

            CloudBlockBlob blockBlob = container.GetBlockBlobReference(path);

            using (dtiFileUpload.PostedFile.InputStream)
            {
                blockBlob.UploadFromStream(dtiFileUpload.PostedFile.InputStream);
            }

using (dtiFileUpload.PostedFile.InputStream)出錯。 我一直都知道這個錯誤,而且我知道我的FileUpload控件dtiFileUpload包含一個空值,這就是它引發異常的原因。 但是我的錯誤是什么? 該代碼與我的虛擬程序相同,並且我不知道哪里出錯了。 我的<form id="newForm" method="post" runat="server" enctype="multipart/form-data"><form id="newForm" method="post" runat="server" enctype="multipart/form-data"> 我在哪里可能錯了?

您必須檢查以下位置:

  • 第一行: dtiFileUpload不能為null
  • 第二行: filePath不能為null

我建議您逐行調試該方法,您將獲得問題的確切位置,否則請發布異常的堆棧跟蹤,並且應該在其中指定行號(確保存在.pdb文件)在執行應用程序的目錄中)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM