我正在开发一个小程序,它与签名板交互,并可以使用以下代码将图像写入文件:
sigObj.setImageXSize(30);
sigObj.setImageYSize(10);
sigObj.setImageJustifyMode(5);
sigObj.setImagePenWidth(5);
BufferedImage sigImage = sigObj.sigImage();
try
{
int w = sigImage.getWidth(null);
int h = sigImage.getHeight(null);
int[] pixels = new int[(w * h) * 2];
sigImage.setRGB(0, 0, 0, 0, pixels, 0, 0);
FileOutputStream fos = new
FileOutputStream("c:\\_img\\sig.jpg");
JPEGImageEncoder jpeg = JPEGCodec.createJPEGEncoder(fos);
jpeg.encode(sigImage);
fos.close();
}
catch (java.io.IOException exception) { System.out.println("Error IO Exception."); }
目标是将文件传输到 Web 服务器并最终将 .jpg 或 .bmp 图像放入 Oracle blob。最好的方法是什么?
只是猜测:
方法一:
让小程序将 .jpg 文件写入十六进制编码字符串,将该字符串移动到隐藏表单字段,然后提交 Oracle 可以读取隐藏字段的页面,并使用 blobVar 将其转换为 pl/sql 中的 blob: = HEXTORAW( url('sigJpg'));
方法二:
让小程序执行 POST 并提交文件
我的 java 技能还很新手,所以我不能 100% 确定是否推荐使用这两种方法。一旦文件被移动到 Web 服务器,我很确定我可以找到一种方法使用 Oracle pl/sql 将其填充到数据库中。我不知道如何将文件发送到网络服务器。
最佳答案
你的方法2是你应该实现的方法。其实这并不是什么大问题。这是一个很好的例子:http://www.exampledepot.com/egs/java.net/Post.html
您应该将图像写入从 URL 连接获取的流中,就像将其写入文件时一样。
但这还不够。您必须实现服务器端。通常,您应该实现 servlet 并重写其 doPost()
方法,您将在其中获取帖子的内容。然后执行您需要的操作:打开 JDBC 连接并将文件写入数据库。尽管我不推荐这种方法:您与数据库中的 BLOB 无关。我认为更好的方法是将图像写入文件系统并仅将其路径存储在数据库中。
我希望我给了你足够的提示。您可以通过 2 分钟谷歌搜索找到更多详细信息。祝你好运。
关于java - 如何让小程序将图像传输到 Web 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7931047/