多张图片上传只在 Symfony 3 中上传一张图片?

     2023-02-23     231

关键词:

【中文标题】多张图片上传只在 Symfony 3 中上传一张图片?【英文标题】:Multiple Image Upload only uploading one image in Symfony 3? 【发布时间】:2016-11-22 10:27:24 【问题描述】:

我正在构建一个函数来将多张图片上传到我们的网站,到目前为止,我的上传表单是这样的:

<?php
namespace Tyson\AdminBundle\Form;

use Doctrine\ORM\EntityRepository;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\Form\Extension\Core\Type\SubmitType;

use Symfony\Component\Form\Extension\Core\Type\FileType;
use Symfony\Component\Form\Extension\Core\Type\IntegerType;

class IuType extends AbstractType


    public function buildForm(FormBuilderInterface $builder, array $options)
    

        $builder->add('id', IntegerType::class);
        $builder->add('image', FileType::class, array(
            'attr' => array(
                'multiple' => 'true',
                'data_class' => null
            )
        ));
    

    public function getName()
    
        return 'iu';
    


然后在 Twig 文件中显示如下:

  <div class="tabs-panel" id="panel3v">
       form_start(iu,action:path('admin_upload-images')) 

      <div class="row">
          <div class="small-3 medium-3 large-3 columns field-label">
              <label>Image ID</label>
          </div>
          <div class="small-9 medium-9 large-9 columns">
               form_widget(iu.id) 
               form_errors(iu.id) 
          </div>
      </div>

      <div class="row">
          <div class="small-3 medium-3 large-3 columns field-label">
              <label>Image Upload</label>
          </div>
          <div class="small-9 medium-9 large-9 columns">
               form_widget(iu.image) 
               form_errors(iu.image) 
          </div>
      </div>

      <div class="row">
          <div class="small-6 medium-6 large-6 columns">
              <button type="submit" class="button" id="saveBtn">Save Changes</button>
          </div>
      </div>

       form_end(iu) 
  </div>

提交后,在测试期间,我将输出表单传递给控制器​​的内容。这是输出:

[files] => Symfony\Component\HttpFoundation\FileBag Object
    (
        [parameters:protected] => Array
            (
                [iu] => Array
                    (
                        [image] => Symfony\Component\HttpFoundation\File\UploadedFile Object
                            (
                                [test:Symfony\Component\HttpFoundation\File\UploadedFile:private] => 
                                [originalName:Symfony\Component\HttpFoundation\File\UploadedFile:private] => CnY8dRqXYAAoaAw.jpg
                                [mimeType:Symfony\Component\HttpFoundation\File\UploadedFile:private] => image/jpeg
                                [size:Symfony\Component\HttpFoundation\File\UploadedFile:private] => 35164
                                [error:Symfony\Component\HttpFoundation\File\UploadedFile:private] => 0
                                [pathName:SplFileInfo:private] => /tmp/phpibZuVW
                                [fileName:SplFileInfo:private] => phpibZuVW
                            )

                    )

            )

我可以选择一个图像,或者 100 个图像,但在控制器执行其他任何操作之前,表单仍然只传递给我一个图像。

作为参考,这是迄今为止我的控制器的代码:

<?php

namespace Tyson\AdminBundle\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\Security\Core\SecurityContext;
use Symfony\Component\Security\Core\User\UserInterface;

use Tyson\CoreBundle\Entity\Images;

use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Cookie;
use Symfony\Component\HttpFoundation\Session\Session;
use Symfony\Component\Form\Form;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\RedirectResponse;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\Filesystem\Filesystem;
use Symfony\Component\Filesystem\Exception\IOExceptionInterface;

use Symfony\Component\HttpFoundation\File\UploadedFile;

class UploadController extends Controller

    public function uploadimagesAction(Request $request)
    

        $fs = new Filesystem();

        $dm = $this->getDoctrine()->getManager();

        $dir = '/var/www/html/tyson/web/uploads/images/';

        $request = $this->get('request_stack')->getCurrentRequest();

        $formdet = $request->request->get('iu');
        $imgId = $formdet['id'];

        $folderPath = '/var/www/html/tyson/web/uploads/images/'.$imgId;
        $imgDirectory = '/var/www/html/tyson/web/uploads/images/'.$imgId.'/';

        $folderCheck = $fs->exists($folderPath);

        print_r($request);
        die();

    


我想file 输出应该包含多个到控制器的图像(因为表单提交一次,而不是重复),那么我做错了什么导致这种情况发生?

【问题讨论】:

【参考方案1】:

我也有同样的问题

          $builder->add('files', FileType::class, array('required' => false,
            'mapped' => false,
            'attr' => array(
                'multiple' => true
            ),
        )); 

只提交一个文件。暂时没有适合我的解决方案,我会在上传名称中添加带有 javascript 的 []。

【讨论】:

【参考方案2】:

我在 Symfony 4.2 上遇到了这个问题,fileBag 中的数组中只有 1 个图像,解决方案是在添加多个属性后运行 php bin/console cache:clear

【讨论】:

【参考方案3】:

您是否尝试过使用“multiple”选项(不是“attr”选项中的那个)?

$builder
    ->add('files', FileType::class, [
        'multiple' => true,
        'attr' => [
            'multiple' => 'multiple'
        ]
    ]
;

【讨论】:

使用 AFNetworking 快速上传多张图片

】使用AFNetworking快速上传多张图片【英文标题】:UploadmultipleimagesusingAFNetworkinginswift【发布时间】:2015-11-1213:19:49【问题描述】:我想在swift中使用AFNetworking将多张图片上传到我的网站,但只上传了array中的最后一张图片。swift脚... 查看详情

将多张图片上传到 Firebase 并检索到 viewpage

】将多张图片上传到Firebase并检索到viewpage【英文标题】:Uploadmultipleimagetofirebaseandretrieveintoviewpage【发布时间】:2020-10-1811:34:29【问题描述】:我想将多张图片上传到firebase并检索到查看页面。我只能上传多张图片,但在实时数... 查看详情

android文件流的方式多张图片上传,并多个参数

参考技术Aandroid开发中图片上传是很正常的,有两种可用的方式:下面我们就说明一下以文件流上传图片的方式,实现网络框架是Retrofit测试上传3张手机sd卡中的图片,并传人了参数EquipmentCode,Description,ReportUserCode等其中的思路是:... 查看详情

多个图像上传进度问题

...工作时上传它们1。但是,一旦我尝试上传下一张图片或多张图片,问题就开始了。我在一个系列中上传的每张图片都会随着最新上传的图片的进度更新所有图片。当我在最后一张上传完成之前拍摄了多张图片时,它会通过随机... 查看详情

上传多张图片预览

】上传多张图片预览【英文标题】:uploadwithmultipleimagepreview【发布时间】:2016-09-0704:29:15【问题描述】:我正在使用这个来源:http://opoloo.github.io/jquery_upload_preview/到现在为止,我可以上传一张带预览的图片。<styletype="text/css"&g... 查看详情

vadio

...息3、图片信息this.files//是类数组,支持单张上传也支持多张上传多张上传的属性获取第一张图片的信息this.files[0]4、lastModigied最后上传图片的时间戳lastModifiedDate最后上传图片的一个标准格式name图片的名字size图片的大小 查看详情

Jcrop处理多张图片时,尺寸不正确

】Jcrop处理多张图片时,尺寸不正确【英文标题】:WhenJcrophandlemorethanoneimage,thesizeisincorrect【发布时间】:2016-05-0406:25:40【问题描述】:1,2,问题:我们什么时候动态改变图像?答:当用户异步上传图片时,比如使用ajaxfileupload.js... 查看详情

Facebook 应用程序:在一篇文章中将多张图片上传到墙上

】Facebook应用程序:在一篇文章中将多张图片上传到墙上【英文标题】:FacebookApplication:Uploadingmultipleimagesinoneposttowall【发布时间】:2011-05-2100:50:15【问题描述】:如何通过api在一篇文章中上传多张图片?喜欢这里:http://www.faceboo... 查看详情

后台上传图片

...序中,我需要通过将UIImage编码为Base64string来在后台上传多张图片。请让我知道如何继续执行相同操作或建议我一些更好的方法。无论如何提前谢谢。问候塔帕什【问题讨论】:为什么要对图像进行编码...您要一张一张地上传图... 查看详情

带预览和删除、Jquery 和 Javascript 的多张图片上传

】带预览和删除、Jquery和Javascript的多张图片上传【英文标题】:MultipleImageuploadwithpreviwanddelete,JqueryandJavascript【发布时间】:2020-09-2707:24:24【问题描述】:我这里有问题。我使用此代码多次选择和预览图像,但我需要删除选定的... 查看详情

微信jssdk上传图片,一张一张的上传和一次性传好几张

//html模板<divclass="zhaopin_3_2"><divid="bbb"></div><imgsrc="/Public/Home/images/jia.png"class="avatar-round1"></div> 此方法是一次可多张上传//js控制{:wx_jssdk_config("false")}< 查看详情

Shopify API Python 使用 Python API 上传多张图片

】ShopifyAPIPython使用PythonAPI上传多张图片【英文标题】:ShopifyAPIPythonMultiplePicturesuploadwithPythonAPI【发布时间】:2018-11-0209:12:24【问题描述】:我正在尝试使用PythonAPI在Shopify上添加多张图片,但是我无法将2张图片上传到一个产品。... 查看详情

Laravel 4 上传 1 张图片并保存为多张 (3)

】Laravel4上传1张图片并保存为多张(3)【英文标题】:Laravel4upload1imageandsaveasmultiple(3)【发布时间】:2014-04-0215:53:24【问题描述】:我正在尝试使用laravel4制作图像上传脚本。(使用资源控制器)并且我正在使用包InterventionImage。我... 查看详情

学校小程序里最多只能传12张图片吗

参考技术A微信小程序每次只能上传一张图片。对于上传多张时需要一张张的上传。多张图片上传的原理其实就是用递归的方法,在每一张上传完之后再继续上传下一张,直到完成为止。 查看详情

使用 axios 在 React 中上传多个图像

...这里遇到了多个图像的问题。我的问题是我想通过API上传多张图片。API无法通过一个请求处理它。所以才想一张一张上传图片,一张一张调用API。我该怎么做?exportconstsaveImages=(images=[],oldImages,isN 查看详情

laravel 8中多张图片上传的问题

】laravel8中多张图片上传的问题【英文标题】:Probleminmultipleimageuploadinlaravel8【发布时间】:2021-09-2914:43:26【问题描述】:我在laravel8中上传多张图片时出错。参数1传递给Illuminate\\Database\\Grammar::parameterize()必须是数组类型,给定... 查看详情

多张图片上传功能

今天闲着没事,把之前的多张图片上传代码整理了下。页面主要代码:1<divclass="upBoxupBox2">2<divclass="d1">3<aclass="redA1rightA"href="javascript:choosePhotos();"id="continue_add_button"style="display:none;">继续添加</ 查看详情

微信公众号如何上传长图?

...要选中三张图片,然后选用样式秒刷,多次操作即可实现多张图片无缝连接哦!Q:图片不足三张怎么办?A:对于不满三张的图片,秒刷样式后,选中多余的图片,点击【删除】即可。除了长图无缝,样式中心还有其它无缝样式,... 查看详情