0

我正在尝试构建一个电子商务应用程序。我的任务是存储用户上传的图像

从他的机器上进入oracle数据库。我为该列创建了一个 blob 数据类型

存储图像。现在

查看代码

@using (Html.BeginForm())
{
  <div class="editor-field">
                @Html.TextBoxFor(m => m.Description, new { id = "txtDescription" })
                @Html.ValidationMessageFor(m => m.Description)
            </div>
           <div class="editor-label">
                @Html.Label("Upload your picture");
            </div>
            <p>
                <input type="file"  id="imagesubmit" name="imagesubmit" value="Submit"  
onclick="saveuserinfo();"/>
            </p>
}

javascript代码

function saveuserinfo() 
{
        var description = document.getElementById('txtDescription').value;
        var imagefile = document.getElementById('imagesubmit');
        $.ajax({
            url: '@Url.Action("SaveuserInfo", "Welcome")',
            data: { description: description,imagesubmit: imagesubmit},
            type: 'POST',
            success: function (data) {
                            }
        });
    }

控制器代码

???

我需要控制器代码来了解如何从 javascript 获取图像并将其传递给 DB 层以进行插入

进入数据库。

这就是我一直在尝试的..这是存储图像的正确方法吗

public ActionResult saveuserinfo(string description,)
    {
        return View("WelcomePage");
    }

(我被困在这里的代码我必须在这里使用什么数据类型来接收图像以及什么

我必须转换数据类型并将其发送到 DB 层。

4

2 回答 2

0

您需要为MultifilePart您的操作添加一个参数:

 public ActionResult saveuserinfo(@RequestParam MultipartFile image) {...}

该参数具有允许您访问字节的方法。注意:您只能读取一次流!

文档:http ://docs.spring.io/spring/docs/3.2.1.RELEASE/spring-framework-reference/html/mvc.html#mvc-multipart

于 2013-10-09T15:48:22.920 回答
0

您不能使用 jquery ajax 或任何形式的纯 XMLhttprequest 上传文件。

你应该使用

@using (Html.BeginForm("YourAction", "YourController", FormMethod.Post, new { enctype = multipart/form-data" })) {
// your form elements goes here, e.g <input type="file" .....
}

或者,如果你真的想在上传时有 ajax 的感觉,你应该看看 Fine Uploader:https ://github.com/Widen/fine-uploader

于 2013-10-09T15:50:23.010 回答