Ok questa è la mia opinione
@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>
}
Questa è la mia vista del modello
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; }
}
Questo è il mio controller azione.
[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.
Questo è il codice MVC. Se si utilizzano Web Form, il codice dovrebbe essere più breve. L'ho preso da un link ma non riesco a trovarlo ora, quindi ho appena postato il mio codice personale. È inoltre necessario assicurarsi che le autorizzazioni di scrittura siano abilitate nell'host utilizzando il Cpanel.
fonte
2013-10-20 10:55:26
Se in esecuzione su IIS, date un'occhiata http://stackoverflow.com/questions/4877741/access-to-the-path-is-denied –
hanno permesso di scrittura autorizzazioni sul server Cpanel? Sto ospitando il mio in Arvixe e ho avuto lo stesso problema. È necessario abilitare le autorizzazioni di scrittura se si sta utilizzando il codice per caricare senza FTP. –