2010-02-11 21 views
14

मैं ASP.NET में FileUpload नियंत्रण का उपयोग करने के कोशिश कर रहा हूँ ASP.NET FileUpload नियंत्रण का उपयोग करने केकैसे सही ढंग से

यहाँ मेरे वर्तमान नाम स्थान सेटअप है:

using System; 
using System.IO; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 

using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using System.Web.UI.WebControls.WebParts; 

और मेरे वर्ग के भीतर, मैं मीटर बस का उपयोग कर:

FileUpload fileUpload = new FileUpload(); 

हालांकि, विशेषताओं है कि सामान्य रूप से FileUpload का हिस्सा हैं में से कोई भी उपलब्ध ... इस तरह के .HasFile के रूप में होने लगते हैं। मैं पीछे कोड में बटन क्लिक विधि बनाने के लिए प्रयास कर रहा हूँ, मैं देखा है कि .HasFile के उपयोग का सबसे सामने कोड में है, लेकिन यह मेरी समझ यह थी कि इस में कोई फर्क नहीं करना चाहिए।

क्या किसी को पता है क्यों?

उत्तर

48

ASP.NET नियंत्रण बल्कि aspx मार्कअप फ़ाइल में रखा जाना चाहिए। उनके साथ काम करने का यह पसंदीदा तरीका है। तो अपने पृष्ठ पर FileUpload नियंत्रण जोड़ें। यकीन है कि यह ID और runat सहित सभी आवश्यक विशेषताएं है बनाओ:

<asp:FileUpload ID="FileUpload1" runat="server" /> 

FileUpload1 का उदाहरण स्वचालित रूप से स्वत: जनरेट/अद्यतन * .designer.cs फ़ाइल में आपके पेज के लिए एक आंशिक वर्ग है में बनाया जाएगा। आपको आमतौर पर इस बात की परवाह नहीं है कि इसमें क्या है, बस मान लें कि एएसपीएक्स पेज पर कोई भी नियंत्रण स्वचालित रूप से तत्काल हो जाता है।

कि एक बटन के बाद वापस करेंगे जोड़ें: जहाँ आप अपने कोड है

<asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" /> 

फिर अपने * .aspx.cs फाइल करने के लिए जाने के लिए और बटन क्लिक हैंडलर जोड़ने। सी # में ऐसा लगता है:

protected void Button1_Click(object sender, EventArgs e) 
{ 
    if (this.FileUpload1.HasFile) 
    { 
    this.FileUpload1.SaveAs("c:\\" + this.FileUpload1.FileName); 
    } 
} 

और यही वह है। सभी उम्मीद के रूप में काम करना चाहिए।

+0

मुझे लगता है कि अगर आप एएसपीएक्स पेज पर फ़ाइल अपलोड लोड करते हैं तो यह ठीक काम करेगा। लेकिन अगर डेवलपर aspx.cs फ़ाइल पर fileupload बनाना चाहता है। यह कैसे काम कर रहा है? – Brian

+0

मुझे इस समस्या पर एक समस्या मिली है जिस पर चर्चा की गई थी। मैंने परिभाषित फ़ाइल कोडबेंड पर अपलोड की है। इसलिए, जब मैं बटन दबाता हूं, तो यह कुछ भी काम नहीं करता है। – Brian

+0

मैंने बटन के लिए एक ईवेंट भी परिभाषित किया। लेकिन जब मैंने इसे डीबग किया तो यह काम नहीं करता था। बटन बीटीएन = नया Buttton.btn.Click + = नया EventHandler (btn_onclick); – Brian

1

इसके बजाय फ़ाइल के पीछे अपने कोड में FileUpload instantiating की, बस इसे अपने मार्कअप फ़ाइल (.aspx फ़ाइल) में घोषित:

<asp:FileUpload ID="fileUpload" runat="server" /> 

तो फिर तुम नियंत्रण के गुणों के सभी उपयोग करने में सक्षम हो जाएगा, जैसे HasFile

1

के पीछे (अपने लिए क्लिक करें घटना में उदाहरण के लिए), ठीक से काम करना चाहिए जहां HasFile संपत्ति उपलब्ध होना चाहिए कोड से एक FileUpload नियंत्रण जोड़ना।

गुण उपलब्ध होने की नहीं दिखाई देते हैं (या तो एक संकलक त्रुटि या IntelliSense के माध्यम से के रूप में), तो आप शायद एक अलग चर की तुलना में आपको लगता है कि आप कर रहे हैं संदर्भित कर रहे हैं।

0

मैंने ध्यान दिया है वहां आम तौर पर रेखा से ऊपर वर्ग आप पर काम कर रहे में कहीं कोई त्रुटि है जब Intellisence एक वस्तु के लिए काम नहीं करता है।

दूसरा विकल्प यह है कि आप एक उदाहरण चर के रूप में FileUpload वस्तु instantiated नहीं किया है। सुनिश्चित करें कि कोड:

FileUpload fileUpload = new FileUpload(); 

आपके कोड में एक फ़ंक्शन के अंदर नहीं है।

0

कोड में मेरे समाधान के पीछे था:

System.Web.UI.WebControls.FileUpload fileUpload; 

मैं पता नहीं क्यों, लेकिन जब आप System.Web.UI.WebControls यह YourProject.FileUpload को संदर्भित कर रहा है बिना FileUpload उपयोग कर रहे हैं सिस्टम.Web.UI.WebControls.FileUpload

संबंधित मुद्दे