Laravel使用不同的字符集上传文件

时间:2016-09-10 09:12:17

标签: php laravel-5

我正在尝试使用像نام فایل这样的波斯语名称上传文件,但文件上传并存储了未知的字符名称,如تقسیم_وظایÙ,它确实困扰了我,我不知道该怎么做。< / p>

这是用于上传文件的控制器代码:

        $files = Input::file('files');
        $errors = "";
        $file_data = array();

        if(Input::hasFile('files'))
        {               
            foreach($files as $file) 
            {
                // validating each file.
                $rules = array('file' => 'required'); //'required|mimes:png,gif,jpeg,txt,pdf,doc'
                $validator = Validator::make(
                    [
                        'file' => $file,
                        'extension'  => Str::lower($file->getClientOriginalExtension())
                    ],
                    [
                        'file' => 'required',
                        'extension'  => 'required|in:jpg,jpeg,bmp,png,pdf,doc,docx,xls,xlsx,zip'
                    ]
                );
                if($validator->passes())
                {
                    // path is root/uploads
                    $destinationPath = 'uploads/docs/';
                    $filename = $file->getClientOriginalName();

                    $temp = explode(".", $filename);
                    $extension = end($temp);
                    $lastFileId = $object_id;

                    $lastFileId++;

                    $filename = $temp[0].'_'.$object_id.'.'.$extension;

                    $upload_success = $file->move($destinationPath, $filename);

                    if($upload_success) 
                    {
                        $data = array(
                                        'file_name'         => $filename,
                                        'meeting_id'        => $object_id,
                                        'user_id'           => Auth::user()->id
                                    );
                        //call the model function to insert the data into upload table.
                        meetingModel::uploadFiles($data);
                    } 
                    else 
                    {
                        // redirect back with errors.
                        return Redirect::back()->withErrors($validator);
                    }
                }
                else
                {
                    // redirect back with errors.
                    return Redirect::back()->withErrors($validator);
                }

            }
        }

0 个答案:

没有答案