2016-04-18 12 views
0

私はストリームで作業するのがかなり新しく、SDK APIを使用してAmazon WebサービスへのWebアプリケーションのアップロードをテストしています。 FileStreamがnullであるというエラーがこのプロセスで生成されます。私はTransferUtilityの代わりにPutを使ってみましたが、AWSのすべてのドキュメントを読みましたが、アップロードはウェブアップロードではなくパスからしか説明できないようです。 FileStreamがnullで、保存が機能しない理由は誰にも見えますか?前もって感謝します!あなたがasを用いて鋳造する場合AWS SDKでの.txt FileStreamのアップロード

using (var client = new AmazonS3Client(Amazon.RegionEndpoint.USWest1)) 
{ 
    //Save File to Bucket 
    using (FileStream txtFileStream = UploadedFile.InputStream as FileStream) 
    { 
     try 
     { 
      TransferUtility fileTransferUtility = new TransferUtility(); 
      fileTransferUtility.Upload(txtFileStream, bucketLocation, UploadedFile.FileName); 
     } 
     catch (Exception e) 
     { 
      e.Message.ToString();//txtFileStream is null! 
     } 
    } 
} 
+0

キャストが失敗したと思います。 'UploadedFile.InputStream'とは何ですか? – Jonesopolis

+0

お返事ありがとうございます。 UploadedFileはユーザーがWebサイトからアップロードする.txtファイルで、FileStreamにはHttpPostedFileBase.InputStreamを使用したばかりです。 – jle

答えて

1

、それが例外をスローしますが、静かに失敗し、nullを返しません。 asを使用しているときは、

というメッセージが表示されないことがあります。これを処理する準備ができていることがあります。あなたはこれがFileStreamなければならないことを確信している場合

FileStream txtFileStream = UploadedFile.InputStream as FileStream 
if(txtFileStream != null) 
{ 
    using(txtFileStream) 
    { 
     //..... 
    } 
} 

は、あなたが直接キャストを使用する必要があります。

一般的に、あなたがnullチェックを行うだろう。失敗した場合、直接キャストは例外をスローします。それは言っているのと同じです

これは常にこのタイプにする必要があります。そうでない場合は、何かがひどく間違っており、続行できません。

ていることを実行します。あなたの質問のために

using(FileStream txtFileStream = (FileStream)UploadedFile.InputStream) 
{ 

} 

、あなたはなぜあなたのキャストが失敗しているかを把握する必要があります。

+0

これにより、テキストファイルがAWSにアップロードされましたが、アップロード時にはアップロード時にコンテンツが表示されません。テスト.txtファイルには2行しかありませんが、どちらも表示されません。 – jle

+0

私はキャストの失敗の原因を取り上げ、別の質問で答えを決めました。応答、ジョーンズポリス再びありがとう。 – jle

関連する問題