2017-03-06 15 views
6

पर संपादन प्रबंधित करें मेरे पास एक उत्पाद पृष्ठ है। मैं अपने उत्पाद को अपने डेटाबेस में जोड़ना चाहता हूं और मैं अपने उत्पाद को भी अपडेट करना चाहता हूं। मुझे छवियों के साथ एक समस्या है। जब मैं डालने उत्पाद everithing ठीक है .. मेरी aspx पेज में मैं इस कोड है:FileUpload नियंत्रण

<span> 
    <asp:FileUpload ID="files" runat="server" AllowMultiple="true" /> 
</span> 
<div runat="server" id="previewImages"></div> 

और जब मैं अपने उत्पाद बचाने के लिए, कोड में पीछे मैं इस कोड है: अब

string filenm = string.Empty; 
HttpFileCollection fileCollection = Request.Files; 
for (int i = 0; i < fileCollection.Count; i++) 
{ 
    HttpPostedFile uploadfile = fileCollection[i]; 
    if (uploadfile.ContentLength > 0) 
    { 
     string filename = uploadfile.FileName; 
     System.IO.Directory.CreateDirectory(Server.MapPath("immScarpe/" + txtStyle.Text)); 
     file.SaveAs(Server.MapPath("immScarpe/" + txtStyle.Text + "/") + fileName); 
     //this is pseudo-code 
     INSERT INTO PRODUCT_IMM (IdProduct, Path) VALUES (Id, "immScarpe/" + txtStyle.Text + "/" + fileName) 
    } 
} 

, समस्या यह है कि मैं सहेजे गए उत्पाद को संपादित कर सकता हूं। जब मैं किसी उत्पाद के संपादन बटन पर क्लिक करता हूं, तो मुझे अपने सभी डेटा लोड करना होगा और उपयोगकर्ता को उन्हें संशोधित करने दें। छवियों के अलावा।

मुख्य प्रश्न यह है कि: मैं सहेजी गई छवियों को एएसपी में कैसे लोड कर सकता हूं: FileUpload नियंत्रण?

एक और चीज जो मैं करना चाहता हूं वह है छवियों के पूर्वावलोकन ... को सम्मिलित करने और संपादित करने के लिए।

एक मैं क्या करना चाहते हैं उदाहरण के लिए, बात यह है कि अमेज़न enter image description here

करता है लेकिन अगर यह AllowMultiple के साथ केवल एक FileUpload के साथ संभव है = true

मैं जावास्क्रिप्ट की तरह अन्य तकनीकों का उपयोग करने को तैयार हूं , jQuery और अजाक्स अगर यह आवश्यक है

+1

पर

Protected Sub GridView_RowCommand(ByVal sender As Object, ByVal e As System.GridViewCommandEventArgs) Handles GridView.RowCommand If e.CommandName = 'Delete' Then 'Place your delete query for your image record on the database here.. 'Place your delete file from disk code here.. End If End Sub 

अधिक जानकारी की तरह कुछ चला जाता है आप FileUpload नियंत्रण में छवि को लोड नहीं है। इसके लिए कोई ज़रूरत नहीं है। आप छवियों को लोड कर सकते हैं और संपादित करते समय उन्हें दिखा सकते हैं। जब उपयोगकर्ता परिवर्तनों को सहेजता है, तो आप जांचते हैं कि FileUpload में फ़ाइलें हैं या नहीं। अगर उन्हें ओवरराइट कर रहे हैं। यदि कोई नहीं है तो आप केवल उन लोगों को रखें जो आपके पास पहले से हैं। – VDWWD

+0

@VDWWD: लेकिन मुझे लगता है कि उपयोगकर्ता अपलोड की गई छवियां देख सकता है और उनमें से एक या अधिक को हटा सकता है। मैं उपयोगकर्ता को छवियों को बदलने और देखने के लिए अनुमति देता हूं कि वह क्या कर रहा है। – Martina

+0

क्या आप ग्रिड व्यू या रिपेटर का उपयोग करने में सक्षम हैं? – CurseStacker

उत्तर

2

छवियाँ दिखाएँ पूर्वावलोकन - सम्मिलित

<script src="jquery-1.10.1.min.js" type="text/javascript"></script> 
    <script type="text/javascript"> 
     function ShowpImagePreview(input) { 
      if (input.files && input.files[0]) { 
       var reader = new FileReader(); 
       reader.onload = function (e) { 
        $('#previewImage').attr('src', e.target.result); 
       } 
       reader.readAsDataURL(input.files[0]); 
      } 
     } 
    </script> 

    <asp:Image ID="previewImage" runat="server" /> 

    <asp:FileUpload ID="FileUpload1" runat="server" onchange="ShowpImagePreview(this);" /> 
1

यहां एक बहुत ही बुनियादी उदाहरण है कि आप सर्वर पर भेजे जाने के बाद छवियों को कैसे संभाल सकते हैं। इस स्निपेट में छवि का फ़ाइल नाम तय किया गया है, लेकिन यह आपको सही दिशा में धक्का देने के लिए पर्याप्त होना चाहिए।

protected void Page_Load(object sender, EventArgs e) 
{ 
    //check if the file exists and show 
    if (File.Exists(Server.MapPath("testImage.jpg"))) 
    { 
     setImage("/testImage.jpg"); 
    } 
} 

//upload a new image 
protected void Button1_Click(object sender, EventArgs e) 
{ 
    if (FileUpload1.HasFile) 
    { 
     try 
     { 
      FileUpload1.SaveAs(Server.MapPath("testImage.jpg")); 
      setImage("/testImage.jpg"); 
     } 
     catch 
     { 
      //error writing file 
     } 
    } 
} 

//delete the image 
protected void LinkButton1_Click(object sender, EventArgs e) 
{ 
    try 
    { 
     File.Delete(Server.MapPath("testImage.jpg")); 
     LinkButton1.Visible = false; 
     Image1.Visible = false; 
    } 
    catch 
    { 
     //error deleteing file 
    } 
} 

//set the image and show the delete link 
private void setImage(string image) 
{ 
    Image1.ImageUrl = "/testImage.jpg"; 
    Image1.Visible = true; 
    LinkButton1.Visible = true; 
} 

ASPX

<asp:Image ID="Image1" runat="server" Visible="false" /> 
<br /> 
<asp:LinkButton ID="LinkButton1" runat="server" Visible="false" OnClick="LinkButton1_Click">Delete image</asp:LinkButton> 
<br /> 
<br /> 
<asp:FileUpload ID="FileUpload1" runat="server" /> 
<br /> 
<asp:Button ID="Button1" runat="server" Text="Upload" OnClick="Button1_Click" /> 
+0

यह ठीक होगा लेकिन मुझे एक समय में और अधिक छवियां अपलोड करने की आवश्यकता है। – Martina

+0

यह सिर्फ एक उदाहरण है। आप जितनी जरूरत हो उतनी नियंत्रण जोड़ सकते हैं। – VDWWD

1

डिस्क से GridView के लिए छवियों को प्रदर्शित करने के लिए

https://www.aspsnippets.com/Articles/Display-Images-in-GridView-Control-using-the-path-stored-in-SQL-Server-database.aspx

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

सवाल पर GridView के डिजाइन देखें:

How to display image inside gridview template field without using handler class?

तरह से बाध्य करने के लिए छवि स्रोत है कि प्रश्न में उत्तर में है।

कार्यक्षमता को हटाने या बदलने के लिए, आप छवि को प्रदर्शित करने वाले टैग के नीचे अपने टेम्पलेटफ़ाइल के अंदर एक लिंकबटन नियंत्रण शामिल कर सकते हैं।

आप लिंकबटन की कमांडनाम संपत्ति को 'हटाएं' या 'बदलें' पर अपने .vb या .cs फ़ाइल पर सेट कर सकते हैं, अपने ग्रिड व्यू के लिए 'रोकॉमंड' ईवेंट ढूंढें।

यह (छद्म केवल कोड) GridView RowCommand घटना

https://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.gridview.rowcommand(v=vs.110).aspx

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