标签: zend-file

PHP:如何重命名使用Zend_Form_Element_File上传的文件?

形成:

//excerpt
$file = new Zend_Form_Element_File('file');
$file->setLabel('File to upload:')
    ->setRequired(true)
    ->addValidator('NotEmpty')
    ->addValidator('Count', false, 1)
    ->setDestination(APPLICATION_UPLOADS_DIR);
$this->addElement($file);
Run Code Online (Sandbox Code Playgroud)

控制器:

//excerpt
if ($form->isValid($request->getPost()) {
    $newFilename = 'foobar.txt';
    //how should I rename the file?
    //When should I rename the file? Before or after receiving?
    try {
        $form->file->receive();
        echo 'filename: '. $form->file->getFileName();
    }
}
Run Code Online (Sandbox Code Playgroud)

问题:

  1. 当我调用$form->file->getFileName()它时,返回完整路径,而不仅仅是文件名.如何仅输出文件名?

    //Answer: First, get an array of the parts of the filename:
    $pathparts = pathinfo($form->file->getFileName());
    //then get the part that you want to use
    $originalFilename = $pathparts['basename'];
    
    Run Code Online (Sandbox Code Playgroud)
  2. 如何将文件名重命名为我想要的名称?这可以 …

php zend-framework file-upload zend-file

28
推荐指数
3
解决办法
3万
查看次数

如何使用PHP和Zend Framework进行文件上传?

我正在使用Zend Framework 1.9.6.我想除了最后我已经弄明白了.这是我到目前为止:

形成:

<?php

class Default_Form_UploadFile extends Zend_Form
{
    public function init()
    {
        $this->setAttrib('enctype', 'multipart/form-data');
        $this->setMethod('post');

        $description = new Zend_Form_Element_Text('description');
        $description->setLabel('Description')
            ->setRequired(true)
            ->addValidator('NotEmpty');
        $this->addElement($description);

        $file = new Zend_Form_Element_File('file');
        $file->setLabel('File to upload:')
            ->setRequired(true)
            ->addValidator('NotEmpty')
            ->addValidator('Count', false, 1);
        $this->addElement($file);

        $this->addElement('submit', 'submit', array(
            'label'    => 'Upload',
            'ignore'   => true
        ));
    }
}
Run Code Online (Sandbox Code Playgroud)

控制器:

public function uploadfileAction()
{
    $form = new Default_Form_UploadFile();
    $form->setAction($this->view->url());

    $request = $this->getRequest();

    if (!$request->isPost()) {
        $this->view->form = $form;
        return;
    }

    if (!$form->isValid($request->getPost())) {
        $this->view->form = $form;
        return;
    }

    try …
Run Code Online (Sandbox Code Playgroud)

php zend-framework file-upload zend-file

10
推荐指数
1
解决办法
3万
查看次数

尝试使用jQuery为Zend Framework找到一个AJAX文件上传解决方案

我正在尝试创建一个"上传文件,并以附件形式发送电子邮件"表单,在发送电子邮件之前,文件在选择后开始上传(如Gmail).我还想实现一个进度条来显示上传的状态.

应该有各种各样的例子,但我找不到它们!

您是否知道任何示例,教程,插件,帮助程序,或者您自己完成了这些并且想要共享一些代码示例?

谢谢!

ajax jquery zend-framework file-upload zend-file

7
推荐指数
1
解决办法
1万
查看次数

PHP,Zend Framework:如何设置上传最大文件大小?

我在我的表单中设置了上传最大文件大小:

$file = new Zend_Form_Element_File('file');
$file->setLabel('File to upload:')
    ->setRequired(true)
    ->addValidator('NotEmpty')
    ->addValidator('Count', false, 1)
    ->addValidator('Size', false, 10485760) //10MB = 10,485,760 bytes
    ->setMaxFileSize(10485760)
    ->setDestination(APPLICATION_UPLOADS_DIR);
$this->addElement($file);
Run Code Online (Sandbox Code Playgroud)

但我在Zend Framework应用程序中收到此错误消息:

Notice: Your 'upload_max_filesize' config setting limits the maximum filesize to '2097152'. You tried to set '10485760' in /location/to/Zend/Form/Element/File.php on line 620
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

php zend-framework zend-file

6
推荐指数
2
解决办法
9797
查看次数

Zend文件上传和元素装饰器

我有问题,以下Zend表格抛出错误.问题是"文件" - 元素和使用setElementDecorators.

    class Products_AddForm extends Zend_Form
{
    function init() {

       // other form elements...

       $uploadElement = new Zend_Form_Element_File('Excel');
       $uploadElement->setLabel('Excel');
       $this->addElement($uploadElement);

       $this->setElementDecorators(array(
            'ViewHelper', 
            'Errors',
            array(array('data' => 'HtmlTag'), array('tag' => 'td')),
            array('Label', array('tag' => 'th')),
            array(array('row' => 'HtmlTag'), array('tag' => 'tr'))
        ));



    }
}
Run Code Online (Sandbox Code Playgroud)

这会引发错误.

(Warning: Exception caught by form: No file decorator found... unable to render file element Stack Trace: #0 ) 
Run Code Online (Sandbox Code Playgroud)

$uploadElement->addDecorator('File');在最后添加SetElementDecorators将工作,但这将给我文件元素两次!

请帮忙吗?

TIA Matt

zend-framework zend-form zend-file

6
推荐指数
1
解决办法
6015
查看次数

如何使用Zend框架上传多个文件?

即使我选择2个或更多图像,也只会上传一个.

我有一个简单的形式:

<form action="/images/thumbs" method="post" enctype="multipart/form-data">
    <input name="file[]" id="file" type="file" multiple="" />
    <input type="submit" name="upload_images" value="Upload Images">
</form>
Run Code Online (Sandbox Code Playgroud)

然后在我的控制器中:

public function thumbsAction()
{
    $request = $this->getRequest();

    if ($request->isPost()) {
        if (isset($_POST['upload_images'])) {
            $names = $_FILES['file']['name'];

            // the names will be an array of names
            foreach($names as $name){
                $path = APPLICATION_PATH.'/../public/img/'.$name;
                echo $path; // will return all the paths of all the images that i selected
                $uploaded = Application_Model_Functions::upload($path);
                echo $uploaded; // will return true as many times as i select …
Run Code Online (Sandbox Code Playgroud)

php upload zend-framework file-upload zend-file

6
推荐指数
1
解决办法
8743
查看次数

ZF 2.4文件验证器必需False不起作用

今天我更新到ZF 2.4使用浮动验证器但不幸的是我意识到我的文件上传表单字段给出了意外的错误消息.

这是我的表单对象

$this->add([
            'name' => 'profileimage',
            'type' => '\Zend\Form\Element\File',
            'attributes' => [
                'id' => 'profileimage',
                'class' => 'styled',
            ],
                ]
        );
Run Code Online (Sandbox Code Playgroud)

这是我的验证器

$inputFilter->add([
                'name' => 'profileimage',
                'required' => false,
                'allow_empty' => true,
                'priority' => 300,
                'filters' => [
                    ['name' => 'StripTags'],
                    ['name' => 'StringTrim'],
                ],
                'validators' => [
                    [
                        'name' => '\Zend\Validator\File\IsImage',
                    ],
                    [
                        'name' => '\Zend\Validator\File\UploadFile',
                    ],
                    [
                        'name' => '\Zend\Validator\File\ImageSize',
                        'options' => [
                            'minWidth' => 300,
                            'minHeight' => 300,
                        ]
                    ],
                    [
                        'name' => '\Zend\Validator\File\Size',
                        'options' => …
Run Code Online (Sandbox Code Playgroud)

zend-framework zend-form zend-validate zend-file zend-framework2

6
推荐指数
1
解决办法
942
查看次数

Zend Zend_File_Transfer_Adapter_Http重命名问题

我有一个关于在Zend上传文件后重命名文件的问题.我不知道在哪里放置重命名过滤器.这就是我所拥有的.我试过搬东西,但我迷路了.目前它确实将文件上传到我的照片文件夹,但它没有重命名.谢谢你的帮助!

if($this->_request->isPost()) 
{
    $formData = $this->_request->getPost();

    if ($form->isValid($formData)) 
    {
        $adapter = new Zend_File_Transfer_Adapter_Http();
        $adapter->setDestination(WWW_ROOT . '/photos');

        $photo = $adapter->getFileInfo('Photo');

        $adapter->addFilter('Rename', array(
            $photo['Photo']['tmp_name'], 
            WWW_ROOT . '/photos/' . $this->memberId . '.jpg', 
            true
        )); 

        if ($adapter->receive()) 
        {
            echo 'renamed';
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

zend-framework zend-file

5
推荐指数
2
解决办法
2万
查看次数

PHP:存储文件位置......如果覆盖了什么?

我目前正在使用Zend Framework并有一个上传文件表单.经过身份验证的用户可以上载文件,该文件将存储在应用程序的目录中,以及存储在数据库中的位置.这样它就可以显示为可以下载的文件.

<a href="/upload-location/filename.pdf">Download</a>
Run Code Online (Sandbox Code Playgroud)

但我注意到的是,具有相同名称的文件将覆盖uploads目录中的文件.没有错误消息,文件名也没有增加.所以我认为该文件必须被覆盖(或永远不会上传).

在上传,移动或存储这些文件时,我应该注意哪些最佳做法?我应该始终重命名文件,以便文件名始终是唯一的吗?

php zend-framework file-upload zend-file

3
推荐指数
1
解决办法
315
查看次数

Zend表单文件,如何向用户表明以前上传过文件?

我有一个zend表单,允许用户填写对象的属性.例如,音乐艺术家.窗体有关于艺术家,像姓名,电话号码,地址,并没有什么基本信息,但它也有一个文件上传域.如果用户上传文件,其存储在数据库(本质上是一个行)对象的这种情况下,如果用户曾经想要编辑这种特定情况下,形式重新填充与对象的信息.但是,表单不会重新填充文件上载信息,因为它不会重新上载它.

如何向用户发出已经上传文件的信号,指出它是哪个文件,甚至可能链接到该文件?类似于填充表单元素的东西是首选.理想情况下,我希望能够为用户提供上传以前上传的文件的功能,因此文件上传元素应该保留.任何的想法?非常感谢阅读.

干杯,Joe Chin

zend-framework zend-form zend-file

3
推荐指数
1
解决办法
1438
查看次数

Zend表单更改元素在运行时需要将选项设置为false

我有一个表单,有两个文件上传元素.它像是

$data_file_one = $this->createElement('file','data_file_one');
            $data_file_one->setRequired(true)
                            ->addValidator('Extension', false, 'csv')
                            ->setDestination($filepath);
Run Code Online (Sandbox Code Playgroud)

两者都设置为必需true.我使用相同的表单来发布新帖子和编辑帖子.当它用于编辑时,文件上传不应该是强制性的,必须设置为必需的false.所以,我需要改变

setRequired(true)to setRequired(false)

如果调用编辑操作来加载表单并更改此元素选项,我该怎么办?

提前致谢.

zend-framework zend-form zend-file zend-form-element

2
推荐指数
1
解决办法
2571
查看次数