【问题标题】:Upload files with FlightPhp micro-framework使用 FlightPhp 微框架上传文件
【发布时间】:2016-10-03 11:51:42
【问题描述】:

我已经在互联网和这个论坛上搜索过这个问题,但我没有看到任何答案。

问题是如何使用DropZonejs或其他的flightphp微框架上传文件

我有一些代码:

DropZone:
<form action="/admin/upload" method="put" class="dropzone">
    <div class="fallback">
        <input name="id" type="file" multiple />
    </div>

PHP:
function upload() {
    $uploaddir = $_SERVER['DOCUMENT_ROOT'] . '/tmp/';
    $uploadfile = $uploaddir . '1.jpg';
    //move_uploaded_file(json_encode(Flight::request()->getBody()), $uploadfile);
    echo json_encode(file_put_contents($uploadfile, Flight::request()->getBody()));
}
Flight::route('POST /admin/upload', 'upload');

我也使用了这个例子,但是 '$_FILES['userfile']' 有错误:

function upload_admin() {
        if(preg_match("/(gif|jpg|jpeg|png|GIF|JPG|JPEG|PNG)$/", $_FILES['userfile']['name']))
        {
            if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
                echo "OK";
            }
        } 
    }

Flight::route('/admin/upload', 'upload_admin');

执行所有这些操作后,我得到了null 结果。

例如,我将一些文件拖到 DropZone。 DZ 请求 /admin/upload/.这是可行的,但最后我有null 大小的1.jpg。 Result of the uploading

谢谢大家。

UPD:嗯,也许是 dropzonejs 的问题?我尝试了一些没有flightphp的上传php脚本,它也没有使用dropzone上传文件。

【问题讨论】:

    标签: php file upload flightphp


    【解决方案1】:

    您无法在 Flight Framework 中使用 getBody() 方法获取文件。你可以这样做

    Flight::route('POST /admin/upload', function(){
        $request = Flight::request();
        $file = $request->files['id']; // (id) which is your html element name
    });
    

    $file 变量包含一些你知道的属性,当你 var_dump() 它时。

    array(5) {
    ["name"]=>
    string(14) "test_image.jpg"
    ["type"]=>
    string(10) "image/jpeg"
    ["tmp_name"]=>
    string(14) "/tmp/php6cpnDa"
    ["error"]=>
    int(0)
    ["size"]=>
    int(18101)
    }
    

    【讨论】:

      猜你喜欢
      • 2013-07-20
      • 1970-01-01
      • 2013-10-25
      • 2016-07-25
      • 2017-04-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-12
      相关资源
      最近更新 更多