1

目前我正在开发一个完全使用 eclips 的 html+jsp 网站。现在我的问题是上传文件。我能够将图像从本地机器显示到我的 html 页面,但我想将该图像存储到 mysql 数据库中,然后显示在主网页上。

假设我在第一页有两个页面,操作员从其本地计算机中选择任何图像,然后它也会显示在同一页面的图像视图上,当操作员单击上传图像时,图像将显示在网站上。

如前所述,我可以在操作员页面上显示图像,但如何将其保存在 mysql 数据库中,然后在网站上检索它。

是否可以仅在 .jsp 文件中执行此任务?

这是我从本地机器显示图像的代码,

  <div class="file">
<ul class="thumbnails">
<li class="span4">
<a href="#" class="thumbnail">
<div id="imgThumbId"></div>
</a>
</li>
</ul>
<form action="advertise.jsp">
<fieldset>
        <legend>Upload Image</legend>
        <label for="file">Choose photo</label>
        <input type="file" name="file" id="file" /><br/>
        <input type="submit" name="upload" id="upload" value="Upload photo"  onclick="PreviewRecipeImage();"/>
    </fieldset>
    </form>
    </div>

这是javascript代码

<script type="text/javascript">



 function PreviewRecipeImage(){


var file = document.getElementById('file').files[0]; // create img tag for selected recipe image file
var img = document.createElement("img");
img.id = "imgid";
img.classList.add("obj");
img.file = file;
//img.width = 90;
//img.height = 90;
//ClearThumb1Image();

 document.getElementById('imgThumbId').appendChild(img);// append img tag to recipe image tag

var reader = new FileReader();
reader.onload = (function(aImg) { return function(e) { aImg.src = e.target.result; }; })(img);
reader.readAsDataURL(file);


}
</script>
4

1 回答 1

0
<div class="file" >
<ul class="thumbnails">
<li class="span4">
<a href="#" class="thumbnail">
<div id="imgThumbId"></div>
</a>
</li>
</ul>
<form action="advertise.jsp" enctype="multipart/form-data">
<fieldset>
        <legend>Upload Image</legend>
        <label for="file">Choose photo</label>
        <input type="file" name="file" id="file" /><br/>
        <input type="submit" name="upload" id="upload" value="Upload photo"  onclick="PreviewRecipeImage();"/>
</fieldset>
</form>
</div>

形式上使用enctype="multipart/form-data"

要处理多部分/表单数据,请使用以下 servlet 代码。并在您的代码中导入Apache Commons FileUpload包。

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    try {
        List<FileItem> items = new ServletFileUpload(new DiskFileItemFactory()).parseRequest(request);
        for (FileItem item : items) {
            if (item.isFormField()) {
                // Process regular form field (input type="text|radio|checkbox|etc", select, etc).
                String fieldname = item.getFieldName();
                String fieldvalue = item.getString();
                // ... (do your job here)
            } else {
                // Process form file field (input type="file").
                String fieldname = item.getFieldName();
                String filename = FilenameUtils.getName(item.getName());
                InputStream filecontent = item.getInputStream();
                // ... (do your job here)
            }
        }
    } catch (FileUploadException e) {
        throw new ServletException("Cannot parse multipart request.", e);
    }

    // ...
}
于 2012-11-17T07:24:52.380 回答