如何在jsp中上传图像并将数据库存储为blob

发布于 2024-11-26 11:24:45 字数 1909 浏览 2 评论 0原文

<%@page import="java.sql.*" %>
<html>
<form method="get" action="blobexcode.jsp" onsubmit="txtvalidate()">
<head>
    <style type="text/css">
    body{
        background-color:#d0e4fe;
    }
</style>    
</head>

<body>
    <table>
        <tr>
            <td>
                Customer Name <input type="text" name="Customername" id="customername">
            </td>
        </tr>
         <tr>
            <td>
                Customer Mob: <input type="text" onkeypress="return 
isNumberKey(event)" name="Customerphone" id="customerphone" >
            </td>
        </tr>
         <tr>
            <td>
                Upload File:  <input type="file" id="f" name="f" >
            </td>
        </tr>
         <tr>
            <td>
                <input type="submit" value="SUBMIT" id="submit">
            </td>
        </tr>

     <script type="text/javascript">
        function isNumberKey(evt)
        {
            var charCode = (evt.which) ? evt.which : event.keyCode
            if (charCode > 31 && (charCode < 48 || charCode > 57))
               return false;
            else
               return true;
         }
     </script>

     <script type="text/javascript">
         function txtvalidate()
         {
            if(document.getElementById("customername").value=="" ||
               document.getElementById("customerphone").value=="")
            { 
               alert("Fill all fields");
               return false;
               document.Customername.focus();
            }
            else
               return true;
        }
    </script>

    </table>
</body>
</form>
</html>
<%@page import="java.sql.*" %>
<html>
<form method="get" action="blobexcode.jsp" onsubmit="txtvalidate()">
<head>
    <style type="text/css">
    body{
        background-color:#d0e4fe;
    }
</style>    
</head>

<body>
    <table>
        <tr>
            <td>
                Customer Name <input type="text" name="Customername" id="customername">
            </td>
        </tr>
         <tr>
            <td>
                Customer Mob: <input type="text" onkeypress="return 
isNumberKey(event)" name="Customerphone" id="customerphone" >
            </td>
        </tr>
         <tr>
            <td>
                Upload File:  <input type="file" id="f" name="f" >
            </td>
        </tr>
         <tr>
            <td>
                <input type="submit" value="SUBMIT" id="submit">
            </td>
        </tr>

     <script type="text/javascript">
        function isNumberKey(evt)
        {
            var charCode = (evt.which) ? evt.which : event.keyCode
            if (charCode > 31 && (charCode < 48 || charCode > 57))
               return false;
            else
               return true;
         }
     </script>

     <script type="text/javascript">
         function txtvalidate()
         {
            if(document.getElementById("customername").value=="" ||
               document.getElementById("customerphone").value=="")
            { 
               alert("Fill all fields");
               return false;
               document.Customername.focus();
            }
            else
               return true;
        }
    </script>

    </table>
</body>
</form>
</html>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

乖乖公主 2024-12-03 11:24:45

阅读以下有关在数据库中存储图像的文章。本例没有使用JSP
http://java-x.blogspot .com/2007/01/handling-oracle-large-objects-with-jdbc.html

一旦您理解了上述文章,您就可以使用 commons-file upload 来上传文件并检索上传文件的输入流并将其插入到数据库中。

有关文件上传的帮助,请参阅以下文章

http://commons.apache.org/fileupload/using。 html

http://www.theserverside.com/news/1365153/HttpClient-and-FileUpload

Read the following article for storing image in db. This example does not use JSP
http://java-x.blogspot.com/2007/01/handling-oracle-large-objects-with-jdbc.html

Once you have understanding of the article stated above you can use commons-file upload to upload the file and retrieve the inputstream of uploaded file and insert it in db.

Refer to following articles for help on file upload

http://commons.apache.org/fileupload/using.html

http://www.theserverside.com/news/1365153/HttpClient-and-FileUpload

我偏爱纯白色 2024-12-03 11:24:45

工作示例

String saveFile = "";
String contentType = request.getContentType();
if ((contentType != null)
        && (contentType.indexOf("multipart/form-data") >= 0)) {
    DataInputStream in = new DataInputStream(
            request.getInputStream());
    int formDataLength = request.getContentLength();
    byte dataBytes[] = new byte[formDataLength];
    int byteRead = 0;
    int totalBytesRead = 0;
    while (totalBytesRead < formDataLength) {
        byteRead = in.read(dataBytes, totalBytesRead,
                formDataLength);
        totalBytesRead += byteRead;
    }
    String file = new String(dataBytes);
    saveFile = file.substring(file.indexOf("filename=\"") + 10);
    saveFile = saveFile.substring(0, saveFile.indexOf("\n"));
    saveFile = saveFile.substring(saveFile.lastIndexOf("\\") + 1,
            saveFile.indexOf("\""));
    int lastIndex = contentType.lastIndexOf("=");
    String boundary = contentType.substring(lastIndex + 1,
            contentType.length());
    int pos;
    pos = file.indexOf("filename=\"");
    pos = file.indexOf("\n", pos) + 1;
    pos = file.indexOf("\n", pos) + 1;
    pos = file.indexOf("\n", pos) + 1;
    int boundaryLocation = file.indexOf(boundary, pos) - 4;
    int startPos = ((file.substring(0, pos)).getBytes()).length;
    int endPos = ((file.substring(0, boundaryLocation)).getBytes()).length;
    File ff = new File(saveFile);
    FileOutputStream fileOut = new FileOutputStream(ff);
    fileOut.write(dataBytes, startPos, (endPos - startPos));
    fileOut.flush();
    fileOut.close();

    ResultSet rs = null;
    PreparedStatement psmnt = null;
    FileInputStream fis;
    try {
        Connection connection = DbConnection.getConnection();
        File f = new File(saveFile);

        String idd = request.getAttribute("userid").toString();
        String insert = "UPDATE `employee` SET `Picture`=? WHERE `id`='"
                + idd + "'";

        psmnt = connection.prepareStatement(insert);
        fis = new FileInputStream(f);
        psmnt.setBinaryStream(1, (InputStream) fis,
                (int) (f.length()));
        int s = psmnt.executeUpdate();
        if (s > 0) {
            System.out.println("Uploaded successfully !");
        } else {
            System.out.println("Error!");
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
}

Working Example

String saveFile = "";
String contentType = request.getContentType();
if ((contentType != null)
        && (contentType.indexOf("multipart/form-data") >= 0)) {
    DataInputStream in = new DataInputStream(
            request.getInputStream());
    int formDataLength = request.getContentLength();
    byte dataBytes[] = new byte[formDataLength];
    int byteRead = 0;
    int totalBytesRead = 0;
    while (totalBytesRead < formDataLength) {
        byteRead = in.read(dataBytes, totalBytesRead,
                formDataLength);
        totalBytesRead += byteRead;
    }
    String file = new String(dataBytes);
    saveFile = file.substring(file.indexOf("filename=\"") + 10);
    saveFile = saveFile.substring(0, saveFile.indexOf("\n"));
    saveFile = saveFile.substring(saveFile.lastIndexOf("\\") + 1,
            saveFile.indexOf("\""));
    int lastIndex = contentType.lastIndexOf("=");
    String boundary = contentType.substring(lastIndex + 1,
            contentType.length());
    int pos;
    pos = file.indexOf("filename=\"");
    pos = file.indexOf("\n", pos) + 1;
    pos = file.indexOf("\n", pos) + 1;
    pos = file.indexOf("\n", pos) + 1;
    int boundaryLocation = file.indexOf(boundary, pos) - 4;
    int startPos = ((file.substring(0, pos)).getBytes()).length;
    int endPos = ((file.substring(0, boundaryLocation)).getBytes()).length;
    File ff = new File(saveFile);
    FileOutputStream fileOut = new FileOutputStream(ff);
    fileOut.write(dataBytes, startPos, (endPos - startPos));
    fileOut.flush();
    fileOut.close();

    ResultSet rs = null;
    PreparedStatement psmnt = null;
    FileInputStream fis;
    try {
        Connection connection = DbConnection.getConnection();
        File f = new File(saveFile);

        String idd = request.getAttribute("userid").toString();
        String insert = "UPDATE `employee` SET `Picture`=? WHERE `id`='"
                + idd + "'";

        psmnt = connection.prepareStatement(insert);
        fis = new FileInputStream(f);
        psmnt.setBinaryStream(1, (InputStream) fis,
                (int) (f.length()));
        int s = psmnt.executeUpdate();
        if (s > 0) {
            System.out.println("Uploaded successfully !");
        } else {
            System.out.println("Error!");
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文