簡體   English   中英

縮小上傳的文件大小(圖片)

[英]Shrink Uploaded file size (Image)

我在網上搜索了很多,但是什么都沒有。

我的問題是我想將任何上傳文件的實際大小減小到特定長度

adnd我不想強制用戶使用特定的ContentLength

例如:-
上傳的文件大小為1mb(或任意大小)->減小到500kb

任何幫助..我將不勝感激。

更具體地說,我只想上傳圖片,如果這會有所幫助

因此,據我了解,您希望允許用戶上傳任何大小的文件,但僅在服務器上處理收縮文件。 並且不要在上傳整個文件上浪費時間和流量。 因此,我不知道是否有能力干擾IIS上接收請求正文的過程,這就是為什么我建議在客戶端進行壓縮。

為此,您可以使用Silverlight,Flash。 (確保您不能僅使用javascript來執行此操作,因為它無法訪問客戶端的文件系統)。 這是使用silverlight實現簡單文件上傳的示例: Link 上傳之前,您需要修改位代碼以剪切文件。

另一個變體是嘗試使用Plupload 它允許您使用HTML5 Gears,Silverlight,Flash上​​載文件,並提供分塊上載的功能。 您可以嘗試研究此開源項目,以使其適應您的需求。

(您也可以嘗試在發送之前在客戶端上壓縮文件)

祝好運。

如果我正確理解了您的問題,我認為不可能(或至少如此簡單)。 當用戶將文件上傳到您的網站時,該文件實際上是POST數據。 如果您正確使用Fiddler http://www.fiddler2.com/fiddler2/之類的工具,則可以在其中看到Base64 Encoded。 因此,用戶已經發送了完整的數據。

我看到您已經用asp.net標記了您的問題,因此,此時,asp.net正在查看請求,並根據允許的最大大小(在web.config中配置)檢查發布的長度,如果發布的長度過大,也會拒絕發布很久以前,您甚至還沒有被允許看到它(我已經嘗試過)。

據我所知,您可以做的最好(如果這是您真正需要做的),是將Web配置中的maxRequestLength設置為一個不會被拒絕的足夠大的值,然后自己截斷數據。

<configuration>
    <system.web>
        <httpRuntime maxRequestLength="32768" />
    </system.web>
</configuration>

您可以增加最大 通過將以下部分添加到您的web.config來上傳大小:

<system.web>
   <httpRuntime  maxRequestLength="102400" executionTimeout="360"/>
</system.web>

102400 == 1GB

將文件轉換為字節數組,然后將其拆分為所需大小的多個字節數組。 以后,如果需要,可以將這些數組寫入多個不同的文件中。

暫無
暫無

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

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