下面我从我的图片上传代码返回有关图像的JSON信息。在name参数的赋值附近,我试图返回图像的URL,尽管它不起作用。目前,下面的代码不起作用,因为返回时没有任何内容返回给浏览器。代码工作正常,尽管要添加到末尾附近的Name属性的行。
如何返回图片的网址,以便在返回时向用户显示图片网址?
[HttpPost]
public ContentResult UploadFiles()
{
var r = new List<UploadFilesResult>();
foreach (string file in Request.Files)
{
HttpPostedFileBase hpf = Request.Files[file] as HttpPostedFileBase;
if (hpf.ContentLength == 0)
continue;
string savedFileName = Url.Content(Path.Combine(Server.MapPath("~/Images"), Path.GetFileName(hpf.FileName)));
hpf.SaveAs(GetNewPathForDupes(savedFileName));
r.Add(new UploadFilesResult()
{
Name = Path.Combine(Server.MapPath("~/Images"), Path.GetFileName(hpf.FileName)),
Length = hpf.ContentLength,
Type = hpf.ContentType
});
}
return Content("{\"name\":\"" + r[0].Name + "\",\"type\":\"" + r[0].Type + "\",\"size\":\"" + string.Format("{0} bytes", r[0].Length) + "\"}", "application/json");
}
修改 我的Javascript处理完成参数中的表单我试图读取JSON但是无法使用新的Jsonresult:
$(document).ready(function () {
$('#fileupload').fileupload({
dataType: 'json',
url: "UploadFiles",
autoUpload: true,
done: function (e, data) {
var json = JSON.parse(data);
$('.file_name').html(json.name);
$('.file_type').html(json.type);
$('.file_size').html(json.size);
}
}).on('fileuploadprogressall', function (e, data) {
var progress = parseInt(data.loaded / data.total * 100, 10);
$('.progress .progress-bar').css('width', progress + '%');
});
});
答案 0 :(得分:1)
所以而不是
return this.Content("{\"name\":\"" + r[0].Name + ...
你可以这样做:
return this.Json(r[0]);
在jQuery中阅读JSON时,您需要执行
var jsonString = // from the response
var json = $.parseJSON(jsonString);
var name = json.someElement;