使用Slim Framework无法将图像保存到数据库和文件夹

时间:2018-10-05 09:30:48

标签: php slim

我对PHP还是很陌生,我正在使用PHP Slim Framework。我试图通过Stack Overflow进行研究,但没有找到回答我问题的答案。

我正在尝试在学校项目中添加汽车描述,它可以很好地捕获所有字段,但是图像并未保存到数据库中,也没有上传到ima​​ges文件夹中,而是将图像另存为json为:

{
    "car_images":
    [
        {
            "file":"C:\\xampp\\tmp\\php8F2B.tmp"
        }
    ]
}

代替 a91cffe8c9b5082f.jpg

当我尝试在本地主机上的浏览器中查看图像时,它会转到以下路径:

  

http://localhost/carbac/public/category_image/%7B%22car_images%22:[%7B%22file%22:%22C://xampp//tmp//php8F2B.tmp%22%7D]%7D

我可能做错了什么?

下面是我捕获细节的功能:

public function add(Request $request, Response $response, $args){

    $car_category_id =  $request->getParam('car_category_id');
    $name =  $request->getParam('name');
    $description =  $request->getParam('description');
    $price = $request->getParam('price');
    $mileage =  $request->getParam('mileage');
    $fuel_type =  $request->getParam('fuel_type');
    $transmission =  $request->getParam('transmission');     
    $fuel_economy =  $request->getParam('fuel_economy');     
    $air_condition =  $request->getParam('air_condition');   
    $hourly_price =  $request->getParam('hourly_price');
    $daily_price =  $request->getParam('daily_price');  
    $year = $request->getParam('year');

    $directory = __DIR__ . '/../../../public/profile_image';

    $uploadedFiles = $request->getUploadedFiles()['category_image'];

    $avater = $request->getUploadedFiles();


    foreach($uploadedFiles as $uploadedFile) {
        if ($uploadedFile->getError() === UPLOAD_ERR_OK) {
            $avater[] = \App\Helpers\FileUpload::moveUploadedFile($directory, $uploadedFile, ['png', 'jpeg', 'gif', 'jpg']);
        } else {

            $Flash = new Flash();
            $Flash->addMessage('message', "Sorry, something went wrong from our end, please notify site owner");
            $Flash->addMessage('status', "callout-danger");

            return $response->withRedirect($this->router->pathFor('car_description'));
        }

    }
    if( ! $avater ) {

        $Flash = new Flash();
        $Flash->addMessage('message', "Sorry, Please make image you are uploading is either a 'png', 'jpeg' or 'gif'");
        $Flash->addMessage('status', "callout-danger");

        return $response->withRedirect($this->router->pathFor('car_description'));
    }

    $car_description = CarDescription::create([
        'car_category_id' => $car_category_id,
        'name' => $name,
        'description' => $description,
        'year' => $year,
        'mileage' => $mileage,
        'price' => $price,
        'fuel_type' => $fuel_type,
        'transmission' => $transmission,     
        'fuel_economy' => $fuel_economy,     
        'air_condition' => $air_condition,   
        'hourly_price' => $hourly_price,
        'daily_price' => $daily_price,
        'images' => json_encode($avater)
    ]);

0 个答案:

没有答案