gpt4 book ai didi

zend-framework - 作案手法 - 使用 Zend Framework 和 HTML5 上传多张图片并调整其大小

转载 作者:太空宇宙 更新时间:2023-11-04 15:39:19 25 4
gpt4 key购买 nike

好消息:

  • 我不在乎它是否使用 ajax。
  • 我不关心用户是否必须安装特定的浏览器才能使其正常工作。
  • 我不关心是否有任何特定的进度条。

坏消息:

  • 我不想使用闪光灯。

用户必须上传任意宽度或高度的文件 - 但不得超过 8MB。该文件必须存储在特定文件夹(或数据库列)中。必须在特定文件夹(或数据库列)上生成缩略图。

这些图像必须与特定记录相关联。

这是一个“作案手法”的问题,我意识到这里涉及的代码太多了。

所以:

  1. 我们首先创建我们的表单元素来支持多次上传,如下所示:

    $element = new Zend_Form_Element_File('multifile');
    $element->setAttrib('multiple', true);
    $element->setIsArray(true);
  2. 然后,我们需要添加一些验证和允许的扩展;

  3. 然后我们需要处理上传;
  4. 上传完成后,我们需要根据需要调整这些多个文件的大小。
  5. 我们需要将那些调整大小的文件存储在其他地方。
  6. 完成所有这些后,我们就可以显示与特定数据库记录关联的文件了吗?

这是要走的路吗?我应该有更多的步骤吗?我错过了什么吗?我以前从未这样做过,但我将其视为挑战。

最佳答案

首先,您创建一个表单。这里没有太多复杂性:

$this->addElement('File','Filedata');
$this->Filedata
->setLabel('Select images')
->setDestination('somepath') //define & create it somewhere earlier ;)
->addValidator('Size', false, 1024000)
->addValidator('Extension', false, 'jpg,png,gif')
->setMultiFile(5)
->addValidator('Count', false, array('min'=>0,'max' => 5))
;

在 Controller 中,您会收到图像。他们会有临时的随机名称,如果您愿意,您可以稍后保留这些名称(我通常这样做)。

$fileinfo = $form->Filedata->getFileInfo();
$path = 'somepath'; //make sure it exists
for($i=0;$i<5;$i++) {
if($fileinfo['Filedata_'.$i.'_']['tmp_name']) {
$img = new Imagick($fileinfo['Filedata_'.$i.'_']['tmp_name']);
// image processing goes here
file_put_contents('somepath',$img);
}
}

就是这样 ;)

关于zend-framework - 作案手法 - 使用 Zend Framework 和 HTML5 上传多张图片并调整其大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5245460/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com