laravel获取输入文件的真实路径

时间:2015-11-18 07:46:41

标签: php laravel

我的视图中有这样的脚本

<form method="post" enctype="multipart/form-data" action="{{ URL::route('import.produk.post') }}">
   <input type="file" name="import">
   <button class="btn btn-primary form-button" type="submit">Save</button>
</form>

在我的控制器中我想显示文件路径
我们可以说该文件位于D:\Data\product.xlsx中 我用这个脚本来做那个

public function postImportProduk() {
   $input = Input::file('import')->getRealPath();;
    var_dump($input);
}

但是它不显示输入文件的实际路径而是显示像此输出的临时文件

string(24) "C:\xampp\tmp\phpD745.tmp"

我尝试使用->getFilename()显示临时文件名phpD745.tmp

但如果我使用->getClientOriginalName(),则表明product.xlsx

我想知道如何获得文件真实路径
ps:我正在使用laravel 4.2

2 个答案:

答案 0 :(得分:1)

上传后,文件将存储在临时目录中,并带有随机生成的名称。

现在您的服务器中已有该文件,您希望将其移动到您必须指定的某个特定文件夹。您的案例中的一个简单示例是:

public function postImportProduk() {
    $input = Input::file('import');
    $destinationPath = '/uploads/'; // path to save to, has to exist and be writeable
    $filename = $input->getClientOriginalName(); // original name that it was uploaded with
    $input->move($destinationPath,$fileName); // moving the file to specified dir with the original name
}

详细了解功能here

答案 1 :(得分:1)

出于安全考虑,无法获取原始文件路径。

查看更多 How to get full path of selected file on change of <input type=‘file’> using javascript, jquery-ajax?