Sto tentando di caricare file in MVC. La maggior parte della soluzione che ho visto su SO è l'uso di webform. Non voglio usarlo e preferisco personalmente usare i flussi. Come implementate il caricamento di file RESTful su MVC? Grazie!Caricamento file in MVC
7
A
risposta
13
Modifica: E proprio quando pensi di aver capito tutto capisci che c'è un modo migliore. Scopri http://haacked.com/archive/2010/07/16/uploading-files-with-aspnetmvc.aspx
originale: Non sono sicuro che ho capito la tua domanda al 100%, ma suppongo che si desidera caricare un file a un URL che sembra qualcosa di simile http: // {nome server}/{controller}/Carica? Questo sarebbe implementato esattamente come un normale caricamento di file usando i moduli web.
Quindi il controller ha un nome di upload azione ed è simile a questo:
//For MVC ver 2 use:
[HttpPost]
//For MVC ver 1 use:
//[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Upload()
{
try
{
foreach (HttpPostedFile file in Request.Files)
{
//Save to a file
file.SaveAs(Path.Combine("C:\\File_Store\\", Path.GetFileName(file.FileName)));
// * OR *
//Use file.InputStream to access the uploaded file as a stream
byte[] buffer = new byte[1024];
int read = file.InputStream.Read(buffer, 0, buffer.Length);
while (read > 0)
{
//do stuff with the buffer
read = file.InputStream.Read(buffer, 0, buffer.Length);
}
}
return Json(new { Result = "Complete" });
}
catch (Exception)
{
return Json(new { Result = "Error" });
}
}
In questo caso sto tornando JSON per indicare il successo, ma è possibile modificare questo per XML (o qualsiasi cosa per quella materia) se necessario.
0
public ActionResult register(FormCollection collection, HttpPostedFileBase FileUpload1){
RegistrationIMG regimg = new RegistrationIMG();
string ext = Path.GetExtension(FileUpload1.FileName);
string path = Server.MapPath("~/image/");
FileUpload1.SaveAs(path + reg.email + ext);
regimg.Image = @Url.Content("~/image/" + reg.email + ext);
db.SaveChanges();}
Problemi correlati
- 1. ASP.NET MVC Timeout del file di caricamento
- 2. immagine Caricamento in ASP.NET MVC
- 3. Caricamento file in primavera 3 MVC - Eccezione puntatore nullo
- 4. Caricamento file con barra di avanzamento in Asp.Net Mvc/jQuery?
- 5. MVC con caricamento lento
- 6. lotti non Caricamento in ASP.NET MVC 4
- 7. Caricamento di più file con ASP.NET MVC e jQuery Plugin di caricamento di file multipli
- 8. Mvc script asincroni completi in caricamento
- 9. Caricamento file con Sinatra
- 10. Caricamento di file di grandi dimensioni su asp.net MVC
- 11. Caricamento di file nel database con ASP.NET MVC
- 12. Barra di avanzamento Bootstrap per caricamento file MVC
- 13. Caricamento jsGrid chiamando Controller/WebService in MVC
- 14. ASP.NET MVC caricamento lento dell'immagine tramite il framework MVC?
- 15. Caricamento file Blueimp: caricamento file singolo
- 16. ExtJS MVC, caricamento dinamico e i18n
- 17. remoto Caricamento file in Grails
- 18. Limite caricamento file in HTTP
- 19. Caricamento file csv in jQuery?
- 20. Caricamento file multiplo in playframework
- 21. Caricamento file multiplo in Grails
- 22. Caricamento file jQuery in AngularJS
- 23. Test caricamento file in Nightwatch.js
- 24. limitazione caricamento dimensione file in ASP.NET MVC: più di 1 impostazione maxRequestLength in web.config (s)
- 25. caricamento di più immagini + campi di testo in ASP.NET MVC
- 26. Caricamento file asincrono (caricamento file AJAX) utilizzando jsp e javascript
- 27. Caricamento di file in blocchi utilizzando il plug-in di caricamento del file jquery in JAVA
- 28. jQuery Caricamento file "Errore - Risultato caricamento file vuoto" - Applicazione Rails
- 29. Caricamento ed elaborazione di file CSV in ASP.NET MVC 4 Considerazioni sull'architettura
- 30. Caricamento di file superiori a 2 GB in ASP.NET MVC 3
E, ovviamente, assicurarsi SEMPRE che non si stia semplicemente accettando la posta indesiderata di un utente. Il controllo minimo dovrebbe essere il tipo di contenuto, l'estensione ed eseguirlo tramite uno scanner di virus prima di considerarlo affidabile. :) – ZombieSheep
Vary true, ZombieSheep, devi controllare TUTTO ciò che un client invia sul lato server, anche se hai convalidato sul client, ma tutta la roba "produzione pronta" interferisce con il punto che stai cercando di dimostrare. – Geoff
Grazie! Ma è così che uso al momento. Non voglio salvare alcun file sul server perché inquinerà il server. – Roy