【问题标题】:Validate image Resolution in Javascript, PHP在 Javascript、PHP 中验证图像分辨率
【发布时间】:2012-05-13 18:47:36
【问题描述】:

我想在通过 Javascript 上传 PHP 中的图像之前验证图像分辨率。在我的 php 表单中,我想上传两个不同的图像,并且两个图像都有不同的分辨率限制。

我试试下面的代码

PHP 代码

echo "<form name='add' enctype='multipart/form-data' action='AppActions.php' method='post' onSubmit='return validate_create();'>";
echo "<div class='form_label'>Album Wrapper (Big Image) *</div>";
echo "<div class='form_input'><input type='file' name='bigimage' id='bigimage' />";

echo "<div class='form_label'>Album Wrapper (Small Image) *</div>";
echo "<div class='form_input'><input type='file' name='smallimage' id='smallimage' />;
echo "<input type='submit' name='add' value='Create' class='Buttons' id='add'>";    

在 Javascript 中

function validate_create()
{
var bigimage = document.getElementById('bigimage');
var smallimage = document.getElementById('smallimage');

var big_img_width = bigimage.clientWidth;
var big_img_height = bigimage.clientHeight;

var small_img_width = smallimage.clientWidth;
var small_img_height = smallimage.clientHeight;

// if condtion to check the condition //
}

在这里,即使我选择不同大小的文件,我也会得到相同的两个图像的宽度和高度。

如何做到这一点?请给我建议

提前致谢

【问题讨论】:

  • 在上传到服务器之前,您可以在 PHP 中检查,但不能在 javascript 中检查
  • 感谢 user1331534。在上传之前如何使用 PHP 进行检查?你能帮我解决这个问题吗?
  • 在用户上传文件之前 无法使用 PHP。

标签: php javascript validation resolution image-size


【解决方案1】:

您可以使用 JavaScript 中的新 HTML5 File API 来检查这一点。但是,这在许多浏览器中尚不可用。不过,您可以实现它,因此支持此功能的浏览器用户可以利用此功能。查看this SO post 了解更多信息和示例。另一种可能性是使用某种 Flash 上传器(只需搜索即可)。

你不能在 PHP 中预先检查它。 PHP 运行服务器端,显然它无法访问客户端计算机上的任何内容。

【讨论】:

    【解决方案2】:

    使用getimagesize() 验证文件尺寸。如果它无效,则抛出错误。 另外,您可能想阅读get uploaded image dimensions with javascript / jquery?

    【讨论】:

      【解决方案3】:

      当您执行bigimage.clientWidthsmallimage.clientWidth 时,您实际上获得的是input 元素的宽度,而不是您要上传的图像。此外,您的 JavaScript 是在文件实际上传之前执行的,目前尚不清楚图像的分辨率。事实上,你甚至不知道这些文件是否真的是图像文件。

      上传文件的类型,如果是图片,图片的分辨率,只有在上传完成后才能确定。因此,这必须在 PHP 中完成(您的 AppActions.php 脚本)。在 PHP 中,您可以访问文件 $_FILES global 以查看上传了哪些文件、它们的类型和大小。然后您可以打开图像并使用imagesximagesy 来确定尺寸。

      如果您在允许上传之前必须知道文件类型,那么我相信您唯一的出路是使用 Flash 组件。例如,SWFUploader。 JavaScript 永远无法访问用户计算机上的文件,但 Flash 可以并且允许您在实际上传文件之前确定文件类型和大小。尽管如此,您的网站仍然需要 Flash,这可能不是您想要的。

      【讨论】:

      • 上传文件的类型可以在实际上传之前确定。
      猜你喜欢
      • 2016-10-13
      • 2017-08-23
      • 1970-01-01
      • 2014-11-20
      • 1970-01-01
      • 2011-04-07
      • 1970-01-01
      • 2017-11-22
      • 1970-01-01
      相关资源
      最近更新 更多