1

私は 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 に null 値が含まれているため、例外が発生することを知っています。しかし、私のエラーは何ですか?コードは私のダミー プログラムと同じで、どこが間違っているのかわかりません。私は<form id="newForm" method="post" runat="server" enctype="multipart/form-data">自分のマスターページにあります。どこが間違っている可能性がありますか?

4

1 に答える 1