首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用symfony表单类型创建多个文件上传域?

如何使用symfony表单类型创建多个文件上传域?
EN

Stack Overflow用户
提问于 2019-02-07 14:08:12
回答 2查看 486关注 0票数 0

我已经浏览了文档,但不清楚如何使用symfony formtype创建以下输入字段。

<input id="image-file" name="files[]" type="file" multiple>

EN

回答 2

Stack Overflow用户

发布于 2019-02-07 14:17:05

试着这样做:

代码语言:javascript
复制
use Symfony\Component\Form\Extension\Core\Type\FileType;

class ImageFile extends AbstractType
{
    /**
     * @param FormBuilderInterface $builder
     * @param array $options
     */
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
            ->add('images', FileType::class, [
                'multiple' => true,
                'attr'     => [
                    'accept' => 'image/*',
                    'multiple' => 'multiple'
                ]
            ])
        ;
    }
}

并将您的'image‘属性更改为'images’属性:

代码语言:javascript
复制
/**
 * Set images
 *
 * @param string $images
 *
 * @return satelliteImage[]
 */
public function setImages($images)
{
    $this->images = $images;

    return $this;
}

/**
 * Get images
 *
 * @return string
 */
public function getImages()
{
    return $this->image;
}

public function addImage($image)
{
    $this->images[] = $image;

    return $this;
}
票数 0
EN

Stack Overflow用户

发布于 2019-02-07 14:22:12

您需要了解上传的概念,并尝试实现Symfony shape允许您正确和安全地上传文件。Upload File with Symfony

这篇教程应该对你也有帮助,Upload multiple files with Symfony 4

对于没有框架的php,应该像这样

代码语言:javascript
复制
define("UPLOAD_DIR", "/path/to/uploaded_file/");

if (!empty($_FILES["files"])) {
    $myFile = $_FILES["files"];

    if ($myFile["error"] !== UPLOAD_ERR_OK) {
        echo "<p>An error occurred.</p>";
        exit;
    }

    // ensure a safe filename
    $name = preg_replace("/[^A-Z0-9._-]/i", "_", $myFile["name"]);

    // don't overwrite an existing file
    $i = 0;
    $parts = pathinfo($name);
    while (file_exists(UPLOAD_DIR . $name)) {
        $i++;
        $name = $parts["filename"] . "-" . $i . "." . $parts["extension"];
    }

    // preserve file from temporary directory
    $success = move_uploaded_file($myFile["tmp_name"],
        UPLOAD_DIR . $name);
    if (!$success) {
        echo "<p>Unable to save file.</p>";
        exit;
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54567251

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档