Maison > php教程 > php手册 > 一个简单的图片文件上传服务with symfony2 component(不含验证)

一个简单的图片文件上传服务with symfony2 component(不含验证)

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Libérer: 2016-06-06 19:35:00
original
1190 Les gens l'ont consulté

要用到Symfony2组件 symfony ?phpnamespace Admin\Bundle\ContentBundle\File;use Symfony\Component\DependencyInjection\ContainerInterface;use Symfony\Component\Filesystem\Filesystem;class SaveFileHandler{ protected $container; public function _

要用到Symfony2组件 symfony

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

<?php

 

namespace Admin\Bundle\ContentBundle\File;

 

use Symfony\Component\DependencyInjection\ContainerInterface;

use Symfony\Component\Filesystem\Filesystem;

 

class SaveFileHandler

{

    protected $container;

    public function __construct( ContainerInterface $container)

    {

        $this->container = $container;

    }

 

    public function save( $fileObject , $path)

    {

 

        $dir = $this->container->get('kernel')->getRootDir() . '/../web/' . $path;

 

        $sub_path = md5( $fileObject->getClientOriginalName() . microtime() );

 

        $dir .= '/' . $sub_path . '/';

        $fs = new Filesystem();

 

        if( !$fs->exists( $dir ) )

        {

            try {

                $fs->mkdir( $dir );

            } catch (IOExceptionInterface $e) {

                echo "An error occurred while creating your directory at ".$e->getPath();

            }

        }

 

        $file = str_replace( 'image/' , mt_rand(1,99) .'.' , $fileObject->getMimeType() );

 

        $fileObject->move( $dir , $file );

 

        return '/'.$path.'/' . $sub_path . '/' . $file;

    }

 

    public function remove( $file)

    {

        $fs = new Filesystem();

        $full_path $this->container->get('kernel')->getRootDir() . '/../' . $file ;

 

        $full_path = preg_replace('/\/\d+\.\w+$/' , '' , $full_path);

 

 

        if( $fs->exists( $full_path) )

        {

 

            try {

                $fs->remove( $full_path );

            } catch (IOExceptionInterface $e) {

                echo "An error occurred while creating your directory at ".$e->getPath();

            }

        }

 

    }

}

Copier après la connexion

1

2

3

4

services:

    file.save_file_handler:

        class: Admin\Bundle\ContentBundle\File\SaveFileHandler

        arguments: [@service_container]

Copier après la connexion

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

<?php

 

//用法

public function doSomethingAction()

{

         

    $data = $form->getData();

    $image = $data->getImage();

     

    if( $old_image )

    {

        $this->get('file.save_file_handler')->remove( $tmp_image);

    }

 

    $newImageName = $this->get('file.save_file_handler')->save( $image , 'upload_dir' );

}

Copier après la connexion
Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Recommandations populaires
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal