ASP.NET में अधिकतम अपलोड फ़ाइल का आकार कैसे बढ़ाएँ?


238

मेरे पास एक फॉर्म है जो ASP.NET में फ़ाइल अपलोड को स्वीकार करता है। मुझे 4 एमबी डिफ़ॉल्ट से ऊपर अधिकतम अपलोड आकार बढ़ाने की आवश्यकता है।

मैंने कुछ स्थानों पर एमएसडीएन पर नीचे दिए गए कोड का उल्लेख किया है ।

[ConfigurationPropertyAttribute("maxRequestLength", DefaultValue = )]

कोई भी संदर्भ वास्तव में इसका उपयोग करने का वर्णन नहीं करता है, और मैंने बिना किसी सफलता के कई चीजों की कोशिश की है। मैं केवल इस विशेषता को कुछ पृष्ठों के लिए संशोधित करना चाहता हूं जो फ़ाइल अपलोड के लिए पूछ रहे हैं।

क्या यह सही रास्ता है? और मैं इसका उपयोग कैसे करूं?


क्या आप सुनिश्चित हैं कि यह एक कोड सीमा है, और एक मेजबान सीमा नहीं है? IIS की सीमा भी है।
मिस्टरहिस्टर 22

मुझे पूरा यकीन था कि यह एक .Net सीमा है। नीचे दिए गए जवाब ने मेरे लिए काम किया।
एडी

जवाबों:


406

यह सेटिंग आपकी web.config फ़ाइल में जाती है। यह पूरे एप्लिकेशन को प्रभावित करता है, हालांकि ... मुझे नहीं लगता कि आप इसे प्रति पृष्ठ सेट कर सकते हैं।

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

"xxx" KB में है। डिफ़ॉल्ट 4096 (= 4 एमबी) है।


6
इससे मुझे साइट वाइड के लिए काम करना पड़ा। मैंने इसे अभी के लिए 10240 (या 10 एमबी) पर सेट किया है। धन्यवाद!
एडी

12
यदि आप IIS7 + चला रहे हैं तो मेरा उत्तर देखें और यह काम नहीं कर रहा है।
4imble

क्या इसे एक नियंत्रक तक सीमित करना संभव है?
गुइलेर्मो वरिनी

@Eddie मैं दो web.config फ़ाइलें मैं दोनों में इसका इस्तेमाल किया है, लेकिन यह काम नहीं करता है। मैं यह कैसे कर सकता हूं ?
अहमद

2
यह एक विशेष मार्ग पर करने के लिए संभव है। <स्थान पथ = "आपी / नियंत्रक"> <system.web> <प्राधिकरण> <उपयोगकर्ताओं को अनुमति दें = "" /> </ प्राधिकरण> <httpRuntime maxRequestLength = "102400" /> </system> .web> </ स्थान> (प्राधिकरण टैग की आवश्यकता नहीं)
nios

182

IIS 7+ के लिए, साथ ही साथ httpRuntime maxRequestLength सेटिंग जोड़ने के लिए आपको भी जोड़ना होगा:

  <system.webServer>
    <security>
      <requestFiltering>
        <requestLimits maxAllowedContentLength="52428800" /> <!--50MB-->
      </requestFiltering>
    </security>
  </system.webServer>

या IIS (7) में:

  • उस वेबसाइट का चयन करें जिसे आप बड़ी फ़ाइल अपलोड को स्वीकार करने में सक्षम चाहते हैं।
  • मुख्य विंडो में 'रिक्वेस्ट फ़िल्टरिंग' पर डबल क्लिक करें
  • "फीचर सेटिंग संपादित करें" चुनें
  • "अधिकतम अनुमत सामग्री लंबाई (बाइट्स)" को संशोधित करें

मैं किलोबाइट्स के बारे में भूल गया: पी
एंड्रयू मायरे

10
आप की संभावना पर सेट करना होगा दोनों maxRequestLength और maxAllowedContentLengthकाम करने के लिए इसे पाने के लिए ... देख stackoverflow.com/questions/6327452/...
MikeM

7
@AndrewMyhre maxAllowedContentLength बाइट्स में है, KB नहीं। Microsoft डॉक्स का कहना है कि डिफ़ॉल्ट 30 एमबी है।
दान रैंडोल्फ

1
@DanRandolph वास्तव में डिफ़ॉल्ट 30000000 (लगभग 28.6MB) है, जैसा कि iis.net/configreference/system.webserver/security/…
Aaantoine

आपको निश्चित रूप से दोनों सेटिंग्स की आवश्यकता है।
मुहूर्त

74

फ़ाइल की आकार सीमा अपलोड करने को बढ़ाने के लिए हमारे पास दो तरीके हैं

1. IIS6 या उससे कम

डिफ़ॉल्ट रूप से, ASP.Net में सर्वर पर अपलोड की जाने वाली फ़ाइल का अधिकतम आकार लगभग 4MB है । यह मान web.config में maxRequestLength विशेषता को संशोधित करके बढ़ाया जा सकता है ।

याद रखें: maxRequestLenght KB में है

उदाहरण : यदि आप अपलोड को 15MB तक सीमित करना चाहते हैं, तो maxRequestLength को "15360" (15 x 1024) पर सेट करें।

<system.web>
   <!-- maxRequestLength for asp.net, in KB --> 
   <httpRuntime maxRequestLength="15360" ></httpRuntime> 
</system.web>

2. IIS7 या उच्चतर

Files.IIS7 अपलोड करने के लिए यहां इस्तेमाल किया एक मामूली अलग तरीके से पेश किया गया है मॉड्यूल को छानने अनुरोध कौन सा ASP.Net.Means से पहले मार डाला रास्ता पाइपलाइन काम करता है (कि मूल्य IIS है maxAllowedContentLength ) पहले तो ASP.NET मूल्य (चेक maxRequestLength ) चेक किया गया है। 28.61 एमबी के लिए अधिकतमअधिकांश गति विशेषता डिफॉल्ट । यह मान एक ही web.config में दोनों विशेषता को संशोधित करके बढ़ाया जा सकता है ।

याद रखें: बाइट्स में maxAllowedContentLength है

उदाहरण : यदि आप अपलोड को 15MB तक सीमित रखना चाहते हैं, तो maxRequestLength सेट करें "15360" और maxAllowedContentLength को "15728640" (15 x 1024 x 1024)।

<system.web>
   <!-- maxRequestLength for asp.net, in KB --> 
   <httpRuntime maxRequestLength="15360" ></httpRuntime> 
</system.web>

<system.webServer>              
   <security> 
      <requestFiltering> 
         <!-- maxAllowedContentLength, for IIS, in bytes --> 
         <requestLimits maxAllowedContentLength="15728640" ></requestLimits>
      </requestFiltering> 
   </security>
</system.webServer>

MSDN संदर्भ लिंक : https://msdn.microsoft.com/en-us/library/e1f13641(VS.80).aspx


17

मेरा मानना ​​है कि web.config में यह लाइन अधिकतम अपलोड आकार निर्धारित करेगी:

<system.web>

        <httpRuntime maxRequestLength="600000"/>
</system.web>

दिन के आधे समय बिताने के बाद यही मेरी मदद करता है !!! बहुत बहुत धन्यवाद !!!
सागर खत्री

13

आपके आवेदन web.config पर 2 जीबी अधिकतम सीमा के लिए:

<system.web>
  <compilation debug="true" targetFramework="4.5" />
  <httpRuntime targetFramework="4.5" maxRequestLength="2147483647" executionTimeout="1600" requestLengthDiskThreshold="2147483647" />
</system.web>

<system.webServer>
  <security>
    <requestFiltering>
      <requestLimits maxAllowedContentLength="2147483647" />
    </requestFiltering>
  </security>
</system.webServer>

7

यदि इसकी विंडोज़ 2003 / IIS 6.0 है तो AspMaxRequestEntityAllowed = "204800" फ़ाइल में देखें मेटाबेस. xml फ़ोल्डर C: \ windows \ system32 \ inetsrv \

"204800" (~ 205Kb) का डिफ़ॉल्ट मान अधिकांश उपयोगकर्ताओं के लिए मेरी राय में बहुत कम है। आप जो सोचते हैं उसका अधिकतम मूल्य बदल दें।

यदि आप फ़ाइल को संपादित करने के बाद उसे सहेजते नहीं हैं, तो आपको ISS- सर्वर को बंद करना होगा या फ़ाइल के संपादन की अनुमति देने के लिए सर्वर को सक्षम करना होगा:

वैकल्पिक शब्द
(स्रोत: itmaskinen.se )

संपादित करें: मैंने प्रश्न को सही नहीं पढ़ा (वेबकॉन्फ़िग में अधिकतम सेट कैसे करें)। लेकिन यह मुखबिर अन्य लोगों के लिए इंटरस्ट हो सकता है, कई लोग जो अपनी साइटों को win2000-server से win2003 में स्थानांतरित करते हैं और उनके पास एक कार्य-अपलोड-फ़ंक्शन था और अचानक से Request.BinaryRead विफल त्रुटि का उपयोग होगा। इसलिए मैं यहां उत्तर छोड़ता हूं।


5

मैं एक जीत 2008 IIS सर्वर में एक ही समस्या है, मैं इस विन्यास web.config में जोड़ने की समस्या को हल किया है:

<system.web>
    <httpRuntime executionTimeout="3600" maxRequestLength="102400" 
     appRequestQueueLimit="100" requestValidationMode="2.0"
     requestLengthDiskThreshold="10024000"/>
</system.web>

RequestLengthDiskThreshold डिफ़ॉल्ट रूप से 80000 बाइट्स यह अपने आवेदन के लिए बहुत छोटा है, तो है। RequestLengthDiskThreshold को बाइट्स में मापा जाता है और Kbytes में अधिकतमRengthestLength व्यक्त की जाती है।

यदि एप्लिकेशन System.Web.UI.HtmlControls.HtmlInputFileसर्वर घटक का उपयोग कर रहा है तो समस्या मौजूद है । इसे हल करने के लिए RequestLengthDiskThreshold को बढ़ाना आवश्यक है।


1
Msdn.microsoft.com/en-us/library/e1f13641(v=vs.100).aspx के अनुसार "इनपुट स्ट्रीम बफ़रिंग थ्रेशोल्ड, किलोबाइट्स में सीमा को निर्दिष्ट करता है। यह मान मैक्सरेलस्टेलेस्ट्रक्चर विशेषता से अधिक नहीं होना चाहिए।" इसलिए यह अनुरोध की लंबाई के समान ही होना चाहिए?
जेफ

हां @ जेफ, रिक्वेस्ट लैंथ डायन्स्काइथरॉशल्ड की कीमत मैक्सरेलेस्ट लैंथ से छोटी होनी चाहिए, लेकिन सबसे पहले बाइट्स में व्यक्त किया जाता है। यदि requestLengthDiskThreshold, maxRequestLength की तुलना में अधिक है, तो कॉन्फ़िगरेशनErrorsException को फेंक दिया जाना चाहिए, ताकि आप अपने आप सही मान का परीक्षण कर सकें। मंचों को
मैसिमो ज़र्बिन

4

यदि आप फ्रेमवर्क 4.6 का उपयोग कर रहे हैं

<httpRuntime targetFramework="4.6.1" requestValidationMode="2.0" maxRequestLength="10485760"  />

4

अधिकतम फ़ाइल आकार को एकल MVC नियंत्रक या यहां तक ​​कि किसी कार्रवाई तक सीमित किया जा सकता है।
इसके लिए web.config <location> टैग का उपयोग किया जा सकता है:

<location path="YourAreaName/YourControllerName>/YourActionName>">
  <system.web>
    <!-- 15MB maxRequestLength for asp.net, in KB 15360 -->
    <httpRuntime maxRequestLength="15360" />
  </system.web>
  <system.webServer>
    <security>
      <requestFiltering>
        <!-- 15MB maxAllowedContentLength, for IIS, in bytes 15728640 -->
        <requestLimits maxAllowedContentLength="15728640" />
      </requestFiltering>
    </security>
  </system.webServer>
</location>

या आप इन प्रविष्टियों को क्षेत्र के अपने web.config में जोड़ सकते हैं।


यह स्वीकार किए गए उत्तर के बजाय उच्च और उपयोग किया जाना चाहिए, क्योंकि यह अनुरोध आकार को मान्य करने के लिए अधिक सुरक्षित है।
जोनाथन ऑर्टेगा

4

मैं जानता हूं कि यह एक पुराना सवाल है।

तो आपको यही करना है:

आप web.config फ़ाइल में, इसे इसमें जोड़ें <system.web>:

<!-- 3GB Files / in kilobyte (3072*1024) -->
<httpRuntime targetFramework="4.5" maxRequestLength="3145728"/>

और इसके तहत <system.webServer>:

<security>
    <requestFiltering>

      <!-- 3GB Files / in byte (3072*1024*1024) -->
      <requestLimits maxAllowedContentLength="3221225472" />

    </requestFiltering>
</security>

आप टिप्पणी में देखें कि यह कैसे काम करता है। एक में आपको बाइट्स में और दूसरे को किलोबाइट्स में रखना होगा। उम्मीद है की वो मदद करदे।


2

आप अपने एप्लिकेशन web.config फ़ाइल में कोड के उस ब्लॉक को लिख सकते हैं।

<httpRuntime maxRequestLength="2048576000" />
<sessionState timeout="3600"  />

उस कोड को लिखकर आप अब से बड़ी फाइल अपलोड कर सकते हैं



0

मैं एस्प अपलोड नियंत्रण के लिए फ़ाइल का आकार बढ़ाने के लिए पर एक ब्लॉग पोस्ट है

पोस्ट से:

डिफ़ॉल्ट रूप से, FileUpload नियंत्रण अधिकतम 4MB फ़ाइल अपलोड करने की अनुमति देता है और निष्पादन समय 110 सेकंड है। ये गुण web.config फ़ाइल के httpRuntime सेक्शन के भीतर से बदले जा सकते हैं। MaxRequestLength गुण अधिकतम फ़ाइल आकार निर्धारित करता है जिसे अपलोड किया जा सकता है। निष्पादन टाइमआउट गुण निष्पादन के लिए अधिकतम समय निर्धारित करता है।


0

यदि यह आपके स्थानीय मशीन में काम करता है और IIS में तैनाती के बाद काम नहीं करता है (मैंने Windows Server 2008 R2 का उपयोग किया है) तो मेरे पास एक समाधान है।

IIS खोलें (inetmgr) अपनी वेबसाइट पर जाएं दाहिने हाथ की ओर सामग्री (अनुरोध फ़िल्टरिंग) पर जाएं सुविधा सेटिंग संपादित करें पर जाएं (अधिकतम बाइट्स जो आपको आवश्यक हैं) के रूप में बदलें। यह काम करेगा। आप निम्न सूत्र से भी मदद ले सकते हैं http://www.iis.net/configreference/system.webserver/security/requestfiltering/requestlimits


0

यदि आप ssl का उपयोग करते हैं तो अपनी ssl पाइपलाइन F5 सेटिंग्स को कॉन्फ़िगर करें।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.