Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Image MVC3图像上传_Image_Asp.net Mvc 3 - Fatal编程技术网

Image MVC3图像上传

Image MVC3图像上传,image,asp.net-mvc-3,Image,Asp.net Mvc 3,我有一个视图,其中包含允许用户上传图像的代码。我从一个我似乎找不到的网站上提取了代码。代码工作得很好,但是我的用户要求在提交页面之前查看图像的预览 “我的视图”中有以下“我的图像”和“上载”按钮 <div class="editor-field"> @if (Model.ImageData == null || Model.ImageData.Length == 0) { @:None } else { <i

我有一个视图,其中包含允许用户上传图像的代码。我从一个我似乎找不到的网站上提取了代码。代码工作得很好,但是我的用户要求在提交页面之前查看图像的预览

“我的视图”中有以下“我的图像”和“上载”按钮

<div class="editor-field">
     @if (Model.ImageData == null || Model.ImageData.Length == 0) { 
         @:None
     }
     else { 
         <img width="150" height="150" alt="Item Image" src="@Url.Action("GetImage", "ItemManagement")" />
     }
  <div>Upload new image: <input type="file" name="Image" /></div>
</div>
因此,当我的视图被发回时,我的控件中的添加操作如下所示

@using(Html.BeginForm("Add", "ItemManagement", FormMethod.Post, new{enctype="multipart/form-data"})) {
    [HttpPost]
    public ActionResult Add(ItemAddModel model, HttpPostedFileBase image) {
        if (!ModelState.IsValid) {
            return View(model);
        }

        if (image != null) {
            model.ImageMimeType = image.ContentType;
            model.ImageData = new byte[image.ContentLength];
            image.InputStream.Read(model.ImageData, 0, image.ContentLength);
        }
        _itemService.AddItem(model);
        return RedirectToAction("Index");
    }

就像我说的,这里的一切都很好。但只有当表单提交后,我的用户再次打开页面,他们才能看到他们上传的图像。我想添加一个更新按钮,它将获取图像并将其加载到图像控件中,而无需发回服务器。在提交表单之前,我不想将图像存储在数据库中。

您可以签出。它使用nice。您可以签出。它使用了nice。

如果你可以使用html5,你可以查看

如果你可以使用html5,你可以查看

以下是我认为的代码。其中的重要部分是将提交按钮的名称设置为“UploadImageButton”。这与控制器中的操作方法所使用的ViewModel中的属性相匹配。另外,class=“style name cancel”可以防止启动客户端验证

<div class="editor-field">
    @if (Model.ImageData == null || Model.ImageData.Length == 0) { 
        @:None
    }
    else { 
        <img id="itemImage" width="150" height="150" alt="@Model.ItemName" src="@Url.Action("GetImage", "ItemManagement", new { Model.ItemID })" />
    }
    @FileUpload.GetHtml(initialNumberOfFiles: 1, allowMoreFilesToBeAdded: false, includeFormTag: false, addText: "Add Image", uploadText: "Upload Image") <br />  
    <input type="submit" name="UploadImageButton" value="Upload Image" class="style-name cancel" />      
</div>

现在,我的用户可以上传一幅图像,这会进行回发,但不会触发任何验证,并将其他编辑保持在上传时的状态。

以下是我视图中的代码。其中的重要部分是将提交按钮的名称设置为“UploadImageButton”。这与控制器中的操作方法所使用的ViewModel中的属性相匹配。另外,class=“style name cancel”可以防止启动客户端验证

<div class="editor-field">
    @if (Model.ImageData == null || Model.ImageData.Length == 0) { 
        @:None
    }
    else { 
        <img id="itemImage" width="150" height="150" alt="@Model.ItemName" src="@Url.Action("GetImage", "ItemManagement", new { Model.ItemID })" />
    }
    @FileUpload.GetHtml(initialNumberOfFiles: 1, allowMoreFilesToBeAdded: false, includeFormTag: false, addText: "Add Image", uploadText: "Upload Image") <br />  
    <input type="submit" name="UploadImageButton" value="Upload Image" class="style-name cancel" />      
</div>

现在,我的用户可以上传一张图像,这会进行回发,但不会触发任何验证,并将其他编辑保持在上传时的状态。

我无法让链接正常工作。显示为黑色页面。我希望有一种方法,我可以上传文件到一个临时文件夹,并显示从那里。也许是AJAX调用?MVC对我来说是比较新的,所以我已经掌握了基本知识,但通常很难找到更高级的东西。似乎在你上传图片的任何地方,你都可以在提交之前预览你上传的内容。@Jeff Reddy,这个链接对我来说很好。你是在某个代理或防火墙后面吗?我必须用IE打开,用Firefox渲染失败。我正在尝试使用Microsoft.Web.Helpers和FileUpload.GetHtml。我来看看我的结果如何。我无法获得链接。显示为黑色页面。我希望有一种方法,我可以上传文件到一个临时文件夹,并显示从那里。也许是AJAX调用?MVC对我来说是比较新的,所以我已经掌握了基本知识,但通常很难找到更高级的东西。似乎在你上传图片的任何地方,你都可以在提交之前预览你上传的内容。@Jeff Reddy,这个链接对我来说很好。你是在某个代理或防火墙后面吗?我必须用IE打开,用Firefox渲染失败。我正在尝试使用Microsoft.Web.Helpers和FileUpload.GetHtml。我来看看我的结果如何。