如何上传图片并将其保存到数据库中? [复制]

2024-03-21

我必须使用 JavaScript 创建一个表单,用户将上传一个 JPG 文件并与其他信息(例如姓名、电子邮件等)一起提交。当用户单击“提交”时,表单中的所有信息都将加载到值对象中。对于图像文件我将其设置为byte[].

所以假设:

public String name;
public String email;
public byte[] logo;

我还设置了一个 servlet 来处理提交,但我不知道如何开始。上传是如何进行的?当用户提交时,如何获取图像的信息?这是一个屏幕截图:http://imageshack.us/f/32/77675354.png/ http://imageshack.us/f/32/77675354.png/我需要转换该图像并将其保存到byte[]然后转换为 blob,以便我可以将其插入到表中。


对于文件上传部分,需要设置enctype="multipart/form-data"在 HTML 表单上,以便网络浏览器将发送文件内容并且您想要使用request.getPart()在 servlet 中doPost()获取文件的方法InputStream。具体代码示例,另请参见如何使用JSP/Servlet上传文件到服务器? https://stackoverflow.com/questions/2422468/how-to-upload-files-in-jsp-servlet/2424824#2424824

然后,保存这个InputStream在数据库中,只需使用PreparedStatement#setBinaryStream() http://download.oracle.com/javase/6/docs/api/java/sql/PreparedStatement.html#setBinaryStream%28int,%20java.io.InputStream%29 on a BLOB/varbinary/bytea列或任何代表您最喜欢的数据库引擎中的“二进制数据”的列。

preparedStatement = connection.prepareStatement("INSERT INTO user (name, email, logo) VALUES (?, ?, ?)");
preparedStatement.setString(1, name);
preparedStatement.setString(2, email);
preparedStatement.setBinaryStream(3, logo);
// ...

您不一定需要转换它InputStream to byte[],它也不会提高内存效率。想象一下,100 个用户同时上传 10MB 的图像,那么此时将分配 1GB 的服务器内存。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何上传图片并将其保存到数据库中? [复制] 的相关文章

  • 未捕获的安全错误:阻止了具有原点的框架...访问具有原点的框架

    我已经为 SAP 解决方案 无论什么 制作了一个组件 该组件通过 iframe 嵌入到报告中 在 SAP 平台 BO 上部署报告后 我收到此错误 在 Chrome 上 但在 IE 或 FF 上也不起作用 Uncaught SecurityE
  • 使用点符号将数字传递到函数中

    如果我有一个对象和函数 var obj 1234 example sample 5678 example sample function example num str if obj num hasOwnProperty str manip
  • 如何像在浏览器中一样检索准确的 HTML

    我正在使用 Python 脚本来呈现网页并检索其 HTML 它适用于大多数页面 但对于其中一些页面 检索到的 HTML 不完整 我不太明白为什么 这是我用来废弃此页面的脚本 由于某种原因 每个产品的链接不在 HTML 中 Link http
  • 如何在将数据发送到 Firebase 数据库之前对其进行加密?

    我正在使用 Firebase 实时数据库制作聊天应用程序 我知道 Firebase 非常安全 只要您的规则正确 但我自己可以阅读使用我的应用程序的人的所有聊天记录 我想阻止这种情况 为此我需要一种解密和加密方法 我尝试使用凯撒解密 但失败了
  • 将 DIV 转换为单击并拖动视口

    有人知道一种不显眼的 基于原型或无框架的方法将具有大内容 例如地图 的 DIV 转换为具有固定尺寸的可点击和可拖动的 地图 容器 非常像 Google 地图 我想在大型输入表单中显示 HTML 块 这些块可能会超出可用空间 每个块可以有大约
  • Javascript - 对父母调用 super 父母?

    我在 Odoo 中定义了当前自定义 javascript 视图的扩展 openerp account move journal test function instance var t instance web t lt instance
  • 如何在 AWS Amplify 上运行 React/Redux 应用程序的代理

    我最近实施了Proxy 在 Express js 中 对于我的反应应用程序发出请求时隐藏 API URL 当我在本地主机上运行代理和应用程序时 它工作得非常好 现在我已准备好将我的应用程序部署到AWS 放大 我对如何让我的代理在那里运行有点
  • 字节码和位码有什么区别[重复]

    这个问题在这里已经有答案了 可能的重复 LLVM 和 java 字节码有什么区别 https stackoverflow com questions 454720 what are the differences between llvm
  • 使用 Google 地图 API 进行反向地理编码

    我正在研究 JavaScript Google Map API 版本 3 更准确地说 正在研究反向地理定位 在 的帮助下官方文档 http code google com intl fr apis maps documentation ge
  • @TestPropertySource 不适用于 Spring 1.2.6 中使用 AnnotationConfigContextLoader 的 JUnit 测试

    似乎我在 Spring 4 1 17 中使用 Spring Boot 1 2 6 RELEASE 所做的任何事情都不起作用 我只想访问应用程序属性并在必要时通过测试覆盖它们 无需使用 hack 手动注入 PropertySource 这不行
  • 如何制作实时jquery效果?

    我想制作一个实时提要阅读器 并且我想要一个解决方案 使新项目无需刷新页面即可出现 并且具有像friendfeed一样的滚动效果 你可以在这里看到我在说什么 http www vimeo com 4029954 http www vimeo
  • jQuery clone() 复制数据...有时...?

    使用下面的示例 我有一个tr我正在复制 它包含一个 jQueryautocomplete 第一次克隆时 自动完成功能不起作用 因为附加的data items 一片空白 第二次单击 添加 按钮时 自动完成功能将起作用 此后 再次单击 添加 会
  • RMI 服务器:rmiregistry 或 LocateRegistry.createRegistry

    对于服务器端的RMI 我们需要启动吗rmiregistry程序 或者只是调用LocateRegistry createRegistry 如果两者都可以的话 各有什么优点和缺点 他们是同一件事 rmiregistry是一个单独的程序 您可以从
  • Google 折线图添加对象数组

    我有一个通过解析 JSON 字符串创建的对象数组 var measurementData Html Raw JsonConvert SerializeObject this Model Item1 var stringifiedData J
  • Android 中的字符串加密

    我正在使用代码进行加密和加密 它没有给出字符串结果 字节数组未转换为字符串 我几乎尝试了所有方法将字节数组转换为字符 但没有给出结果 public class EncryptionTest extends Activity EditText
  • Apollo 客户端“未找到命名导出‘删除’”

    我正在尝试创建一个apollo client插件Nuxt 3应用 它当前抛出有关名为的包的错误ts invariant file Users my name Repositories project node modules apollo
  • Java的hashCode可以为不同的字符串产生相同的值吗?

    使用java的哈希码函数是否可以为不同的字符串提供相同的哈希码 或者如果可能的话 其可能性的 是多少 Java 哈希码是 32 位 它散列的可能字符串的数量是无限的 所以是的 会发生冲突 百分比是没有意义的 项目 字符串 的数量是无限的 而
  • 为什么 [].push([]) 返回 1? [复制]

    这个问题在这里已经有答案了 为什么这会返回 1 push outputs 1 push 返回数组的新长度 one push two returns 2 array length is 2 one two push something ret
  • 日期时间解析异常

    解析日期时 我的代码中不断出现异常错误 日期看起来像这样 Wed May 21 00 00 00 EDT 2008 这是尝试读取它的代码 DateTimeFormatter formatter DateTimeFormatter ofPat
  • IE 中带有“删除”方法的 jQuery.ajax 问题

    我有一个页面 用户可以使用按钮编辑各种内容并选择触发 ajax 调用 特别是 一个操作会导致远程调用一个 url 其中包含一些数据和 放置 请求 这 因为我使用的是宁静的 Rails 后端 会触发我的更新操作 我还有一个删除按钮 它调用相同

随机推荐

  • 在用户定义类型和现有类型之间定义已存在(例如在 Prelude 中)运算符的正确方法是什么?

    假设我有一个包装现有类型的自定义类型 newtype T T Int deriving Show 假设我希望能够加起来Ts 并且将它们相加应该会导致将包装值相加 我会通过以下方式做到这一点 instance Num T where T t1
  • http 服务器可以检测到客户端已取消其请求吗?

    我的网络应用程序必须处理和提供大量数据才能显示某些页面 有时 用户关闭或刷新页面 而服务器仍在忙于处理该页面 这意味着服务器将继续处理数据几分钟 然后将其发送给不再侦听的客户端 是否可以检测到连接已断开并做出反应 在这个特定的项目中 我们使
  • Maven 多项目 Cobertura 在 mvn 站点构建期间报告问题

    我们有一个多项目 我们正在尝试运行 Cobertura 测试覆盖率报告 作为我们 mvn 站点构建的一部分 我可以让 Cobertura 在子项目上运行 但它错误地报告 0 覆盖率 即使报告仍然突出显示单元测试所命中的代码行 我们使用的是
  • CMD 全屏 Visual Studio

    我不小心将命令 shell 设为全屏 我设法将其恢复到原始状态 但现在当我运行 Visual Studio 时 屏幕闪烁黑色 我认为这是全屏命令 shell 启动 有人可以帮忙吗 如果再有一位同事问我是否感染了病毒 我就会去办公桌前 Tha
  • 像 Groupon 这样的网站如何根据其进行交易的城市来进行地理定位?

    假设您从加利福尼亚州阿古拉山 Agoura Hills 的入口点访问 Groupon Groupon 将如何将该城镇引用到最近有优惠的城市 例如洛杉矶 并选择该城市作为最近的城市 它是否从该位置获取纬度 经度并计算与所有可用城市的距离 选择
  • iOS 5 上的 jQuery 事件

    我在 jQuery 1 6 4 iOS 5 和 touchstart touchend 事件的注册方面遇到问题 显然 如标题中所述 采取以下代码
  • 如何判断拼图是否完成?

    我正在准备一款像拼图这样的小游戏 为此我在布局中使用了 9 个图像视图和 9 个不同的图像 在启动时将图像设置为 imageview 这些是实际图像 随机播放后用户将滑动图像以完成拼图 我想检查修改后的图像与实际图像的 天气是否相等 如果它
  • 在 WinForms 中更新 BindingSource 不会更新数据源集合

    我想在中显示自定义集合DataGridView在 Windows 窗体应用程序中 这个自定义集合实现了ICollection and IEnumerable 我已经设置了一个BindingSource 使用集合作为 DataSource 属
  • 启动时将 par 重置为默认值

    通常 当我制作自己的绘图函数时 我会制作一个构造 op lt par mypar myvalue on exit par op 这是恢复的标准方法par到之前的值 想象一下 您一直在运行一些确实更改了某些参数的函数 并且您需要在 R 中启动
  • Ruby on Rails:没有视图的操作

    我有一个我认为非常简单的问题 我有 PhP 背景 并且过去一直这样做 所以我可能以错误的方式看待这个问题 我正在尝试在 RoR 中创建一个 ajax 处理程序 当用户单击按钮时 javascript 会触发 POST 并使用 jQuery
  • 编写 django-piston 客户端的正确方法是什么?

    我已经阅读了很多关于 django piston 的文章 并使用它为我正在开发的应用程序制作 API 但我对世界的客户端很着迷 我已经编写了处理程序和 uri 映射 并且可以随心所欲地返回 JSON 或 XML 我陷入困境的是现在该怎么办
  • cygwin下无法访问jarfile

    我知道这里有很多 无法访问 jarfile 问题 但我确实觉得这足以保证它自己的线程 我正在编写一个演练 该演练的一部分涉及安装 Cygwin 并运行 jar 文件 问题是这个 jar 文件需要从多个目录调用 而不是让我的读者每次需要运行它
  • 为什么 MATLAB 中允许使用多个连续的加号语法?

    有谁知道为什么这在 MATLAB 中有效 gt gt 1 2 ans 3 来自 C Python Java 等语言的编码 我发现这根本就行得通 这是最违反直觉的 想必解析器有一些我不明白的重要内容 有一个区别plus https mathw
  • python 中的前导零[重复]

    这个问题在这里已经有答案了 Python 似乎能够接受除 08 或 09 之外的任何数字的前导零 例如 a 04 在解释器中工作但是 a 08 returns SyntaxError invalid token 我在 OSX 上使用 pyt
  • 类常量的 PHP 表达式

    我试图找出为什么我会遇到此代码的异常 class Test const test Two rows 我在包含 const 的行上遇到异常 解析错误 语法错误 意外的 期望 或 在 home BZUMUL prog php 第 X 行 我本来
  • Java 客户端/服务器套接字

    我从 java 套接字开始 并且有奇怪的 缺乏 输出 这是我的套接字方法的来源 客户端源码 public void loginToServer String host String usnm try Socket testClient ne
  • Indy 可以运行 Javascript 吗?

    有一种名为 AnyChart 的软件产品 非常适合在网页中嵌入基于 Flashed 的图表 AnyCharts 还可以导出为 PNG 文件格式 这是一个例子
  • 如何使用 sublime 在终端上运行 ruby

    我什至不确定这个问题是否正确 我正在以下链接上编写 ruby 教程 www youtube com watch v Dji9ALCgfpM 他在sublime上编写代码 并在终端上显示运行的代码 我曾经在 Integrated ruby i
  • 带选择标签的 dataTables 列过滤插件

    我正在使用数据表 v1 92 以及列过滤插件 v1 5 0 问题 我需要为单个列过滤创建下拉列表 其标记将是
  • 如何上传图片并将其保存到数据库中? [复制]

    这个问题在这里已经有答案了 我必须使用 JavaScript 创建一个表单 用户将上传一个 JPG 文件并与其他信息 例如姓名 电子邮件等 一起提交 当用户单击 提交 时 表单中的所有信息都将加载到值对象中 对于图像文件我将其设置为byte