缩小上传文件的大小(图片)

| 我在网上搜索了很多,但是什么都没有。 我的问题是我想将任何上传文件的实际大小减小到特定长度。 adnd我不想强制用户使用特定的ContentLength 例如:-  上传的文件大小为1mb(或任何大小)->减小到500kb 任何帮助..我将不胜感激。 具体来说,我只想上传图片(如果有帮助的话)。     
已邀请:
因此,据我了解,您希望允许用户上传任何大小的文件,但仅在服务器上处理收缩文件。并且不要在上传整个文件上浪费时间和流量。因此,我不知道是否有能力在IIS上接收请求正文的过程中进行干扰,这就是为什么我建议在客户端进行压缩。 为此,您可以使用Silverlight,Flash。 (确保您不能仅使用javascript来执行此操作,因为它无法访问客户端的文件系统)。这是使用silverlight实现简单文件上传的示例:链接。上传之前,您需要修改位代码以剪切文件。 另一个变体是尝试使用Plupload。它允许您使用HTML5 Gears,Silverlight,Flash上​​载文件,并提供分块上载的功能。您可以尝试研究此开源项目,以使其适应您的需求。 (您也可以尝试在发送之前在客户端压缩文件) 祝好运。     
如果我正确理解了您的问题,我认为这是不可能的(或至少那么简单)。当用户将文件上传到您的网站时,该文件实际上是POST数据。如果您正确使用Fiddler http://www.fiddler2.com/fiddler2/之类的工具,则可以在其中看到Base64 Encoded。因此,用户已经发送了完整的数据。 我看到您已经用“ 0”标记了您的问题,因此,此时asp.net正在查看请求,并根据允许的最大大小(在web.config中配置)检查发布的长度,如果是,则拒绝发布距离允许您看到它太久了(我已经尝试过)。 据我所知,您可以做的(如果这是您真正需要做的)是将Web配置中的ѭ1设置为一个不会被拒绝的足够大的值,然后自己截断数据。
<configuration>
    <system.web>
        <httpRuntime maxRequestLength=\"32768\" />
    </system.web>
</configuration>
    
您可以增加最大通过在您的
web.config
中添加以下部分来上传尺寸:
<system.web>
   <httpRuntime  maxRequestLength=\"102400\" executionTimeout=\"360\"/>
</system.web>
102400 == 1GB     
将文件转换为字节数组,然后将其拆分为所需大小的多个字节数组。以后,如果需要,可以将这些数组写入多个不同的文件中。     

要回复问题请先登录注册