5

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?

2
  • 1
    Move or copy a file from the request to multiple locations [stackoverflow question ](stackoverflow.com/questions/38979386/…) Commented Jul 8, 2017 at 9:28
  • Thankyou @SurenderSinghRawat, It worked. Commented Jul 10, 2017 at 5:17

5 Answers 5

25

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.

Sign up to request clarification or add additional context in comments.

6 Comments

you are right, my file upload was running two times.
also i am faced to this issue and it's uploading two times in foreach. thank you for idea and it's worked
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.
thanks a lot, i was uploading it twice, using same name for different files, thanks again :)
Thanks. I checked and when i was uploading 2 files i for error moved 2 times the same one :)
|
5

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);

Comments

1

Check your code if your file upload code is running two times. You can check this part of the code. Make sure you type it correctly and not repeat it twice.

   // Original size upload file
    $section_image_file->move($folder, $section_image_name);

Comments

0

Check if you call any method (like $file->getSize()), because it calls the move method too.

Comments

0

I had a similar case where I was using this code:

if ($_FILES && isset($_FILES['files'])) { 
            return new UploadedFile(
            $_FILES['files']['tmp_name'][0],
            $_FILES['files']['name'][0],
            $_FILES['files']['type'][0],
            $_FILES['files']['size'][0],
            $_FILES['files']['error'][0],
            true
        );
    }

changing first line to:

if ($_FILES && $_FILES['files']['tmp_name'][0] !== '') {
       

fixed my problem.

Hope it helps someone

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.