Laravel: The file was not uploaded due to an unknown error

15,316

Solution 1

You can try this:

$request->file('photo')->move($destination_path, $file_name);

Add DIRECTORY_SEPARATOR between path and filename if needed and copy that file at new location

copy($destination_path.$file_name, $new_path.$new_file_name);

Solution 2

Check your code if your file upload code is running two times.

I was facing the same issue & then I find that my file upload code is running two times.

after commenting one of them it's working fine.

Share:
15,316
Saani
Author by

Saani

A versatile and professional web application developer with a commitment to develop & work with innovative & creative web solutions.

Updated on July 23, 2022

Comments

  • Saani
    Saani almost 2 years

    I am trying to upload a file to two different locations. The lcoations being /2x/ adn /3x/. It uploads the file on 3x but doesn't on 2x and throws this error:

    The file was not uploaded due to an unknown error

    Here is what i am doing:

    $photo = $request->file('photo');
    
        if (isset($photo)) {
            if ($photo != null || $photo != '') {
    
                $imageSize = getimagesize($photo);
                $resolution = $imageSize[0] . 'x' . $imageSize[1];
    
                if ($resolution == '300x300' || $resolution == '450x450') {
    
                    if (!file_exists(base_path('uploads/custom_avatar'))) {
                        mkdir(base_path('uploads/custom_avatar'), 0777, true);
                    }
    
                    $resolution = "3x";
    
                    $uploadPath = base_path('uploads/custom_avatar/' . $resolution . '/');
    
                    $otherImageResolution = '2x';
                    $otherImagePath = base_path('uploads/custom_avatar/' . $otherImageResolution . '/');
                    //echo $otherImagePath;exit;
                    // saving image
                    $fileName = $child->id . '_' . time() . '.png';
    
                    $photo->move($uploadPath, $fileName);
                    $photo->move($otherImagePath, $fileName);
    
                    // creating records
                    $childImage = Images::addPhoto($child->id, $fileName, $resolution);
                    $otherImage = Images::addPhoto($child->id, $fileName, $otherImageResolution);
    
                    if ($childImage && $otherImage) {
                        $result = Child::createChildResponseData($child);
                        \Log::info('Child avatar added Successfully' . json_encode($childImage));
                        return response()->json([
                            'status' => $this->SUCCESS,
                            'response' => $result,
                        ], $this->SUCCESS);
                    } 
    

    Any help?

  • Therichpost
    Therichpost about 4 years
    you are right, my file upload was running two times.
  • Sasindu Jayampathi
    Sasindu Jayampathi almost 4 years
    also i am faced to this issue and it's uploading two times in foreach. thank you for idea and it's worked
  • Hassan Raza
    Hassan Raza almost 4 years
    It worked for me as i looked into my foreach, i was uploading same file twice, resulting in error. your hint solved my problem. thanks.
  • RoshJ
    RoshJ over 3 years
    thanks a lot, i was uploading it twice, using same name for different files, thanks again :)