我知道您提到不使用 AJAX 进行文件上传,但我认为这个解决方案非常简单。
使用以下 jQuery 插件 ( https://blueimp.github.io/jQuery-File-Upload/ ),您可以自动化该过程,如果您的文件中存在任何验证问题,那么您可以返回以下模型并显示错误.
string errors = "Errors returned from complex logic";
if (!String.IsNullOrEmpty(errors))
{
// error response
status = new ViewDataUploadFilesResult()
{
name = Path.GetFileName(hpf.FileName),
size = hpf.ContentLength,
error = errors
};
}
这是与 jQuery 文件上传文档匹配的响应所需的类:https ://github.com/blueimp/jQuery-File-Upload/wiki/Setup
public class ViewDataUploadFilesResult
{
public string name { get; set; }
public int size { get; set; }
public string type { get; set; }
public string url { get; set; }
public string error { get; set; }
}
如果我理解正确,由于文件已经在用户计算机上,您只需要将文件关联到他们尝试上传的当前文件即可返回错误。为了做到这一点,他们不必重新选择要上传的文件。我看不出有任何其他理由需要将实际文件返回给用户,因为他们已经拥有正在上传的文件。