无法在实际网站上传图片

时间:2015-09-11 10:34:12

标签: php laravel laravel-5

我有一个有会员注册的网站。所有数据都将保存,但我只收到此错误:

Could not move the file "/tmp/phpa4pH3I" to "/home/sporter/public_html/someonect.org/uploads\membersImages/33921.jpg" ()

我的代码就像这样

public function store(){
    // dd(Input::all());
    $validator = Validator::make(Input::all(), Members::$rules);

    if($validator->passes()):

        $first_name = Input::get('mem_firstName');
        $last_name = Input::get('mem_lastName');
        $email = Input::get('mem_email');
        $image = Input::get('mem_image');
        $phone = Input::get('mem_phone');
        $occupation = Input::get('mem_occupation');
        $citizen = Input::get('mem_citizen');
        $address = Input::get('mem_address');

        $destinationPathImage = str_replace('PROJECT\\', '', base_path().'\uploads\membersImages\\') ;

        //Generating a random name
        $randomName = rand(11111,99999);

        //Renaming the image
        $ImageName = $randomName.'.'.'jpg'; // renameing image

        $imagePath = $destinationPathImage.$ImageName;

        Members::create([
                'first_name'=>$first_name,
                'last_name'=>$last_name,
                'email'=>$email,
                'image'=>$imagePath,
                'phone'=>$phone,
                'occupation' => $occupation,
                'citizen' => $citizen,
                'address'=>$address
        ]);
        ...

3 个答案:

答案 0 :(得分:1)

我没有明确说明您的str_replace部分,但如果您在配置中正确设置了网址,则不需要此。

我正在使用这种上传图片:

if($request->hasFile('mem_image')) {
   $file = $request->file('mem_image');
   $ext = $request->file('mem_image')->getClientOriginalExtension();
   $filename = rand(11111,99999). '.' . $ext;
   $file->move('./uploads/', $filename);
   $member->mem_image = '/uploads/' . $filename;
   $member->save();
}

如果您的uploads目录位于公用文件夹中。

答案 1 :(得分:0)

如果您的脚本具有在目标文件夹中写入的权限。问题只能在路径上。检查变量$ destinationPathImage中包含的内容。它必须是正确的并存在路径。在您的错误消息中,我看到斜杠问题。

还认为在使用文件路径保存到数据库记录之前检查目标文件夹和文件的存在是否很酷。

答案 2 :(得分:0)

您没有使用正确的斜杠。

\uploads\membersImages\\替换为/uploads/membersImages/

如果仍然无效,请使用is_writable php函数仔细检查该文件夹中的权限。但是,请记住,is_writable函数在Windows平台上无法正常工作。