我有一个表单I'我正在使用Html.BeginForm()通过控制器上传图像。上传的图像保存正确(我在文件夹中看到),但我无法在网站上看到它。为此,我必须重新加载整个webbrowser
如何在上传后在我的网站上显示图像?网站在不同的视图中显示此图片几次,始终由<img scr="imagePatch"/>
显示。新图像只保存与前一个图像相同的名称,替换它。
答案 0 :(得分:1)
有很多方法可以做到这一点 你可以在表单中使用html文件api。
$(document).ready(function(){
// render the image in our view
function renderImage(input,file) {
// generate a new FileReader object
var reader = new FileReader();
// inject an image with the src url
reader.onload = function(event) {
the_url = event.target.result;
$('.img-preview__').remove();
$(input).after("<img class='img-preview__' src='" + the_url + "' />")
}
// when the file is read it triggers the onload event above.
reader.readAsDataURL(file);
}
// handle input changes ... you can change selector
$("#the-file-input").change(function(event) {
// grab the first image in the FileList object and pass it to the function
renderImage(event.target,this.files[0]);
});
});
这将很好用。要么你可以让你的图像预览看起来更好。 对于图像预览元素,请使用此css代码
img.img-preview__ {
width: 120px;
border: 3px solid #ddd;
border-radius: 3px;
display: inline-block;
}
例如
<h2>Create</h2>
@using (Html.BeginForm("Create", "Image", null, FormMethod.Post,
new { enctype = "multipart/form-data" })) {
<fieldset>
<legend>Image</legend>
<div class="editor-label">
@Html.LabelFor(model => model.ImagePath)
</div>
<div class="editor-field">
<input id="the-file-input" title="Upload a product image"
type="file" name="file" />
</div>
<p><input type="submit" value="Create" /></p>
</fieldset>
}
我希望这个帮助