2013-10-20 4 views
5

पर मेरी छवियों पर एक व्यवस्थापक पैनल अपलोड करें, जो उपयोगकर्ता को फ़ाइल सिस्टम में छवियों को अपलोड करने की अनुमति देता है। मैं बस सी # कोड में कर रहा हूँ:ASP.NET से Godaddy फ़ाइल सिस्टम

imageFile.SaveAs(galleryPath + fileName); 

लेकिन एक अनुमतियाँ अपवाद हो रही:

पथ के लिए 'पहुँच डी: \ होस्टिंग ... \ एचटीएमएल \ छवियाँ \ गैलरी \ page2- img1.jpg ' अस्वीकार कर दिया गया है।

विवरण: वर्तमान वेब अनुरोध के निष्पादन के दौरान एक अनचाहे अपवाद हुआ। कृपया त्रुटि के बारे में जानकारी और कोड में इसकी उत्पत्ति के लिए स्टैक ट्रेस की समीक्षा करें। अपवाद विवरण: सिस्टम। अनधिकृत एक्सेस अपवाद: पथ 'डी: \ होस्टिंग ... \ html \ images \ Gallery \ page2-img1.jpg' तक पहुंच अस्वीकार कर दी गई है।

क्या आप कृपया मुझे एक सुझाव दे सकते हैं कि मैं अनुमति कैसे दे सकता हूं?

+0

आप इसे आईआईएस पर चल रहे हैं, एक नज़र http://stackoverflow.com/questions/4877741/access-to-the-path-is-denied –

+1

ले सक्षम लिखने है:

यहाँ अधिक जानकारी है सर्वर Cpanel पर अनुमतियाँ? मैं Arvixe में मेरा होस्टिंग कर रहा हूँ और एक ही समस्या थी। यदि आप एफ़टीपी के बिना अपलोड करने के लिए कोड का उपयोग कर रहे हैं तो आपको लेखन अनुमतियां सक्षम करने की आवश्यकता है। –

उत्तर

0

ठीक है यह मेरे विचार

@using (Html.BeginForm("Upload", "Pictures", FormMethod.Post, new { enctype = "multipart/form-data" })) 
{ 
    @Html.AntiForgeryToken() 
    <div> 
    Title:<br/> 
    @Html.EditorFor(x => x.Title)<br/> 
    @Html.ValidationMessageFor(x => x.Title)<br/> 
    @Html.TextBoxFor(x => x.File, new { 
    type = "file" 
    })<br/> 
    @Html.ValidationMessageFor(x => x.File)<br/> 
    Description:<br/> 
    @Html.TextAreaFor(x => x.Description)<br/> 
    @Html.ValidationMessageFor(x => x.Description) 
    </div> 
    <div style="clear:both"></div> 
    <p><input type="submit" value="Save"/></p> 
} 

है यह मेरे विचार मॉडल

public class UploadModel 
    { 
     [Required(ErrorMessage=("You have not selected a file"))] 
     public HttpPostedFileBase File { get; set; } 
     [Required(ErrorMessage = "Please enter a title")] 
     [StringLength(50)] 
     public string Title { get; set; } 
     [StringLength(400)] 
     public string Description { get; set; } 
    } 

यह मेरा नियंत्रक कार्रवाई है।

[Authorize(Roles = "Approved")] 
    [HttpPost] 
    [ValidateAntiForgeryToken] 
    public ActionResult Upload(UploadModel m) 
    { 
     byte[] uploadedFile = null; 
     Byte123 xxx = new Byte123(); 
     if (m.File != null && !string.IsNullOrEmpty(m.Title)) 
     { 
      //var fileName = System.IO.Path.GetFileName(m.File.FileName); 
      //string c = m.File.FileName.Substring(m.File.FileName.LastIndexOf(".")); 
      // m.Title = m.Title.Replace(c, ""); 
      uploadedFile = new byte[m.File.InputStream.Length]; //you get the image as byte here but you can also save it to file. 

यह एमवीसी कोड है। यदि आप वेब फॉर्म का उपयोग कर रहे हैं तो कोड छोटा होना चाहिए। मुझे यह एक लिंक से मिला है लेकिन अब इसे नहीं मिला है इसलिए मैंने अपना कोड पोस्ट किया है। आपको यह सुनिश्चित करने की भी आवश्यकता है कि Cpanel का उपयोग करके अपने होस्ट में अनुमति अनुमतियां सक्षम हों।

2

इस समस्या निवारण आलेख को पढ़ें, वहां एक समाधान है। कि सिर्फ समर्थन से संपर्क काम नहीं करता है;

http://support.godaddy.com/help/article/6481/setting-directory-permissions-with-windows-hosting-accounts

Btw), उसके बेहतर अभ्यास जब फ़ोल्डर + फ़ाइल नाम श्रृंखलाबद्ध

imagefile.SaveAs(System.IO.Path.Combine(galleryPath, fileName)); 
+0

धन्यवाद। यही वही है जो मैं पूछ रहा था। – user1274184

1

सभी को धन्यवाद Path.Combine उपयोग करने के लिए। मुझे बस पढ़ने/लिखने के लिए फ़ोल्डर की अनुमतियों को बदलना पड़ा। डिफ़ॉल्ट रूप से यह केवल पढ़ने के लिए है। http://support.godaddy.com/help/article/6481/setting-directory-permissions-with-windows-hosting-accounts

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