2017-08-24 22 views
1

:でも、2メガバイトのファイルがブロックされているので、検証私は以下の次のコードしているアップロードサイズ

MultipartMemoryStreamProvider result = await Request.Content.ReadAsMultipartAsync(new MultipartMemoryStreamProvider()); 
HttpContent content = results.Contents.FirstOrDefault(i => i.Headers.ContentDisposition.Name.Contains("FileContent")); 

byte[] data = await content.ReadAsByteArrayAsync(); 

if (data.Length > 51200) 
{ 
    // block upload with more than 50mb of size 
} 

は今、これが機能していません。私は検索し、kbで50MBが51200であることを見た。

+0

必ずあなたのウェブサーバイマイチのための固有のコードを記述する必要はありませんか? – BugFinder

答えて

1

あなたはすでに公式のmsdn documentationを読んでいますか?

方法長さ():

は、ストリームの長さ(バイト単位)を取得します。

実際には、51200バイトは0.05 Mbに等しくなります。 変更しましたか?

サイズが50MBを超えるアップロードをブロックする必要がある場合は、それを 50 Mb = 52,428,800バイトに設定する必要があります。

+0

これは私のために働いた。値を52428000に変更しました。ありがとう! –

1

イムのでわからないが、あなたはこれを試すことができます。

double filesize = data.Length/2048 

data.Length /2048はメガバイトに取得する理由1024kb == 1MBとだ1024byte == 1kbがある覚え

filesize == MB

if(filesize>50) 

何かのコンテンツ値そのように...

+0

これを試しましたが、検証にはまだ10MBのファイルで失敗しています。 –

1

はちょうどあなたのweb.configファイルに次の行を追加し、それがアプリケーションからアップロードされるように指定されたサイズを超えて許可されません

<httpRuntime executionTimeout="1200" maxRequestLength="15000" useFullyQualifiedRedirectUrl="false" minFreeThreads="8" minLocalRequestFreeThreads="4" appRequestQueueLimit="100" enableVersionHeader="true" /> 

maxRequestLength="15000"できるようになります15メガバイトと例外を通じて、同様にあなたのように指定することができますポストへの最大あなたの要件ごとに。

Configファイルは、アップロードファイルのサイズをチェックし、あなたはそれよりも大きなファイルを拒否するように設定したのと同じ

関連する問題