【问题标题】:After resizing image using Javascript, how to upload via PHP using $_POST使用 Javascript 调整图像大小后,如何使用 $_POST 通过 PHP 上传
【发布时间】:2013-03-17 15:25:06
【问题描述】:

基本上,我尝试编写一个网页,用户可以通过 iPhone/Andoid 和桌面上传图片。这些图片应保存为 ./userupload 中的缩略图,并且指向此的链接存储在 MySQL 数据库中。

我通过简单的 HTML 表单上传和一个 PHP 脚本来实现它,剪切掉应该是缩略图的部分,保存新图片并将链接写入数据库。这听起来很简单,但棘手的是现在 iPhone 图片真的很大,而移动上传 6MB 的图片需要很长时间 cia 3G。因此,我寻找一种在客户端使用 Javascript 进行大小调整的可能性。通过stackoverflow,我发现little script 非常有用,我现在用它来调整大小。

不幸的是,我的 Javascript 和 HTML5 技能还不是很发达,我不知道如何将调整大小的图像(现在通过<img> 标签显示)连同<form> 的其他输入一起传递给我的后端 php 脚本保存图像并将链接写入数据库。你有什么想法吗?

谢谢提前

【问题讨论】:

  • 小心,如果用户上传了您认为是图像数据但不是的东西,这似乎很容易被利用。
  • 有效点。我在服务器端进行了检查,但毫无疑问不是客户端。我需要在那里寻找一个强大的验证功能:) 谢谢

标签: php javascript forms upload resize


【解决方案1】:

好吧,既然您在调整大小的<img> 的src 属性中有一个base64 编码图像,您可以将该值放入隐藏输入并上传bas64 字符串(而不是真实图像)。然后,您可以在 PHP 脚本中解码图像并以您需要的方式保存。

【讨论】:

  • 嗨!非常感谢!在尝试重新编码一些 JS 之后,我现在可以将 base64 放入隐藏字段。但是,如果我尝试使用 base64_decode($hiddenfield) 对 base54 进行解码,我确实会得到一个看起来很奇怪的字符。我想我的解码方式有问题,你知道如何正确解码吗?
  • 由于图像是二进制数据,如果您以文本形式查看该数据,则会出现“奇怪的”字符……
  • @Kurt 您解码的不是文本,而是图像数据。如果要保存到文件中,只需将解码后的数据放入文件中即可。
  • 谢谢。只是为了说明清楚:我创建了一个新文件 - 比如说图片.jpg - 并将 base64 解码的文本放入其中?或者我应该怎么做?
  • ^ 是的,只要图像是 jpeg。
猜你喜欢
  • 2013-12-17
  • 1970-01-01
  • 2013-02-09
  • 2019-02-10
  • 1970-01-01
  • 1970-01-01
  • 2021-05-18
  • 2013-07-04
  • 1970-01-01
相关资源
最近更新 更多