vs.net 2017 MVC use upload
vs.net 2017 MVC use upload
I want use Editor upload function in vs.net 2017 MVC . Code as below:
[AcceptVerbs(HttpVerbs.Get | HttpVerbs.Post)]
public ActionResult HData()
{
var formData = HttpContext.Request.Form;
string connString = System.Configuration.ConfigurationManager.ConnectionStrings["Entities"].ToString();
string username = GetRealName();
using (var Ddb = new Database("sqlserver", connString))
{
var response = new Editor(Ddb, "HDevices")
.Model<HDeviceItem>().TryCatch(false)
.Field(new Field("UpdateDate")
.Set(Field.SetType.Edit)
.SetValue(DateTime.Now.ToString("yyyy-MM-dd"))
.GetFormatter(Format.DateSqlToFormat(Format.DATE_ISO_8601))
.SetFormatter(Format.DateFormatToSql(Format.DATE_ISO_8601)))
.Field(new Field("Hfile")
.SetFormatter(Format.IfEmpty(null))
.Upload(new Upload(HttpContext.Request.PhysicalApplicationPath + @"uploads\__ID____EXTN__")
.Db("files", "id", new Dictionary<string, object>
{
{"web_path", Upload.DbType.WebPath},
{"system_path", Upload.DbType.SystemPath},
{"filename", Upload.DbType.FileName},
{"filesize", Upload.DbType.FileSize}
})
.DbClean(data =>
{
foreach (var row in data)
{
// Do something;
}
return true;
})
.Validator(Validation.FileSize(5000000, "Max file size is 5000K."))
.Validator(Validation.FileExtensions(new[] { "jpg", "png", "gif", "pdf" }, "Please upload an image."))
)
)
.Process(formData)
.Data();
return Json(response, JsonRequestBehavior.AllowGet);
}
}
When the debug begin ,it report wrong like below
System.Exception
HResult=0x80131500
Message=File upload requires that 'Process' be called with an HttpRequest or UnvalidatedRequestValues object
Source=DataTables
How can I revise code?
This discussion has been closed.
Answers
Change:
To be:
And that should do it. That allows Editor to access the file upload information from the request as well as the form data.
Allan
change to below is ok
var formData = HttpContext.ApplicationInstance.Context.Request
thanks too.