PHPackages                             jsnlib/upload - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [File &amp; Storage](/categories/file-storage)
4. /
5. jsnlib/upload

ActiveLibrary[File &amp; Storage](/categories/file-storage)

jsnlib/upload
=============

1.2.4(7y ago)040MITPHPPHP &gt;=7.0.0

Since Mar 9Pushed 7y agoCompare

[ Source](https://github.com/fdjkgh580/jsnlib-upload)[ Packagist](https://packagist.org/packages/jsnlib/upload)[ RSS](/packages/jsnlib-upload/feed)WikiDiscussions master Synced 3d ago

READMEChangelogDependencies (1)Versions (9)Used By (0)

jsnlib-upload
=============

[](#jsnlib-upload)

簡單快速的上傳檔案

方法一、自動上傳，系統自動命名
---------------

[](#方法一自動上傳系統自動命名)

1. 先建立表單，並指定 input 屬性為 multiple

```

    訣竅：無論單比或多筆都使用name="upl[]"

```

2. Server

```
require_once 'vendor/autoload.php';
$U = new \Jsnlib\Upload;
try
{
    if (isset($_POST['go']))
    {
        $inputname                  =   "upl"; //設定input file 的名稱, upl代表了 name="upl[]"
        $U->filename                =   $inputname; //input name屬性的陣列名稱
        $U->arraykey                =   0; //input name陣列鍵值(起始值)
        $U->could_secondname        =   "jpg"; //允許副檔名
        $U->pathaccess              =   "0777"; //路徑權限
        $U->size                    =   5; //MB
        $U->site                    =   "images"; //上傳路徑，結尾口有可無 /
        $U->resizeImageScriptPath   =   "../plugin/ImageResize.php"; //套件ImageResize 路徑    (可相對於class jsnupload 的位置)
        $U->resize_width            =   400; //若要不同的size就在下方each的時候再填寫即可
        $U->resize_height           =   400;
        $U->resize_quality          =   100; //JPG壓縮品質

        $result = $U->fileupload(
        [
            'prefix' => 'MY',
            'url' => 'http://localhost/jsnlib/Upload/Demo',
            'sizelist' =>
            [
                [
                    'size' => "s",
                    'width' => 150,
                    'height' => 150
                ],
                [
                    'size' => "m",
                    'width' => 800,
                    'height' => 800
                ]
            ]

        ]);

        print_r($result);
        die;
    }
}
catch (Exception $e)
{
    echo $e->getMessage();
    die;
}
```

3. 上傳後會得到結果如

```
Array
(
    [0] => Array
        (
            [s] => Array
                (
                    [filename] => MY_GFXD_1522376456_s.jpg
                    [path] => images/MY_GFXD_1522376456_s.jpg
                    [url] => http://localhost/jsnlib/Upload/Demo/images/MY_GFXD_1522376456_s.jpg
                )

            [m] => Array
                (
                    [filename] => MY_GFXD_1522376456_m.jpg
                    [path] => images/MY_GFXD_1522376456_m.jpg
                    [url] => http://localhost/jsnlib/Upload/Demo/images/MY_GFXD_1522376456_m.jpg
                )

        )

)
```

方法二、手動上傳，並可自行指定對應命名
-------------------

[](#方法二手動上傳並可自行指定對應命名)

1. 先建立表單，name 的部分命名為陣列

```

    訣竅：無論單比或多筆都使用name="upl[]"

```

2. Server

```
require_once '../vendor/autoload.php';
$U      = new \Jsnlib\Upload;

/**
 * 手動上傳，並可自行指定對應命名
 */
try
{
    if (isset($_POST['go']))
    {
        $inputname                  =   "upl"; //設定input file 的名稱, upl代表了 name="upl[]"
        $U->filename                =   $inputname; //input name屬性的陣列名稱
        $U->arraykey                =   0; //input name陣列鍵值(起始值)
        $U->could_secondname        =   "jpg"; //允許副檔名
        $U->pathaccess              =   "0777"; //路徑權限
        $U->size                    =   5; //MB
        $U->site                    =   "images"; //上傳路徑，結尾口有可無 /
        $U->resizeImageScriptPath   =   "../plugin/ImageResize.php"; //套件ImageResize 路徑    (可相對於class jsnupload 的位置)
        $U->resize_width            =   400; //若要不同的size就在下方each的時候再填寫即可
        $U->resize_height           =   400;
        $U->resize_quality          =   100; //JPG壓縮品質

        //$val為原始上傳的文件名稱，若要將檔名使用原始檔名，建議配合uniqid()
        foreach ($_FILES[$inputname]["name"] as $val)
        {

            if ($U->isnextkey($val)) continue; //不限數量 (遇到未指定的就換下一個)

            //開始上傳
            //小
            $newname_s                  =   uniqid(date("YmdHis_")). "_s.".$U->scandN(1);
            $U->resize_width            =   150;
            $U->resize_height           =   150;
            $U->fileupload_multi($newname_s, $U->arraykey, 1, "retain");

            //中
            $newname_m                  =   uniqid(date("YmdHis_")). "_m.".$U->scandN(1);
            $U->resize_width            =   400;
            $U->resize_height           =   400;
            $U->fileupload_multi($newname_m, $U->arraykey, 1, "retain");

            //大
            $newname_b                  =   uniqid(date("YmdHis_")). "_b.".$U->scandN(1);
            $U->resize_width            =   1280;
            $U->resize_height           =   1280;
            $U->fileupload_multi($newname_b, $U->arraykey, 1, "clean");

            ?>
            小:
