Laravel 4.2上传文件成功,但在我使用它时未找到

时间:2015-03-24 01:05:25

标签: php laravel upload

Laravel 4.2上传文件成功,但在我使用时未找到

文件已成功上传到我已指定的目录中,但是当我想显示它时,它返回未找到,但如果我将其更改为同一目录中的其他文件名,则会显示该文件。怎么了?

这是我的代码:

应用程序/服务/ CommonProvider.php

<?php
class CommonProvider{
    # simple class to provide static common functions

    public static function uploadFiles($filename,$name,$location = 'img/'){     
        if(Input::hasFile($name)){
            $filename .= '.'.Input::file($name)->getClientOriginalExtension();
            $filename = $location . $filename;
            if(Input::file($name)->move($location, $filename))
                return $filename;               
            return false;
        }
        return false;
    }
}

这是来自 app / services / UserProvider.php <的 updateUser 方法(例如) / p>

public function updateUser($input, $user_id) {
        $validation_messages = $this->validateUser(Input::all(), false);
        if ($validation_messages !== true) return $validation_messages;

        try {

            $insert = $this->user->find($user_id);
            $insert->access_level = $input['access_level'];
            $insert->email = $input['email'];
            $insert->name = $input['name'];
            $insert->mobile_no = $input['mobile_no'];
            if ($input['password'] != '') $insert->password = Hash::make($input['password']);
            if (!isset($input['active_status'])) $insert->active_status = 0;
            $insert->save();

            $filename = CommonProvider::uploadFiles($insert->id, 'user_image', 'img/user_images/');

            if ($filename) {
                $insert->user_image = $filename;
            }
            $insert->save();

            return true;
        }
        catch(Exception $e) {
            dd($e);
            return false;
        }
    }

我想念什么?

1 个答案:

答案 0 :(得分:1)

移动文件时不应添加文件名路径(可以在想要检索文件时添加)。

$filename = $location . $filename;  // remove this line

我认为您需要添加绝对路径,以便准确了解上传文件的移动位置。

在此代码中,我添加了public_path()

$abslocation = public_path() . '/'. $location;
if(Input::file($name)->move($abslocation, $filename))
   return $location . $filename;