모든 폴더에 777 권한을 부여한 후에도 Magento 이미지 업로드가 작동하지 않습니다


9

magento 관리자 패널에서 이미지를 업로드 할 수 없습니다. "대상 폴더에 쓸 수 없거나 존재하지 않습니다"라는 오류가 발생합니다. 최근 한 호스팅에서 다른 호스팅으로 모든 파일을 이동했습니다. 이것에 대한 해결책?


어떤 종류의 호스팅 패키지가 있습니까? 지원이 포함 된 경우 현재 권한에 대해 물어볼 가치가 있습니다.
David Manners

동일한 서버에서 호스팅되는 두 개의 웹 사이트가 있으며 파일을 업로드 할 수있는 모든 권한이 있으며 파일이 업로드되지 않은 경우에도
user3164549

답변:


16

프로젝트에서 파일을 열고 함수 안에 lib/Varien/File/Uploader.php넣습니다 .Mage::log()save()

public function save($destinationFolder, $newFileName = null)
{
    $this->_validateFile();

    if ($this->_allowCreateFolders) {
        $this->_createDestinationFolder($destinationFolder);
    }

    if (!is_writable($destinationFolder)) {
        // Put a mage::log() and check what is the folder magento is looking for.
        Mage::log($destinationFolder);
        throw new Exception('Destination folder is not writable or does not exists.');
    }
    ...
}

로그에서 Magento가 찾고있는 폴더를 찾을 수 있습니다. 그런 다음 해당 폴더에 대한 권한을 확인하십시오.


5
감사합니다. Media / tmp / category / product에 파일 권한을 부여하는 것을
잊어 버렸고

2
문제가 해결되어 다행입니다. 이것이 문제를 해결하는 데 도움이 되었으면 답변으로 표시하십시오.
Sukeshini

5

마 젠토 2

Magento 2에서 동일한 오류가 발생합니다.이 경우 오류가 발생한 파일입니다.

vendor/magento/framework/File/Uploader.php

줄에 256임시 로이 코드를 배치하여 쓸 수 없거나 존재하지 않는 폴더를 얻을 수 있습니다.

if( !is_writable($destinationFolder) ) {
    // throw new Exception('Destination folder is not writable or does not exists.');
    throw new Exception($destinationFolder);
} 

그렇지 않으면이 폴더가 존재하고 웹 서버가 쓸 수있는 폴더인지 확인하십시오.

  • pub/media/catalog/
  • pub/media/catalog/category
  • pub/media/catalog/product
  • pub/media/images
  • pub/media/wysiwyg/

3

내 문제는

술집 / 미디어 / tmp

웹 서버에 의해 쓰기 가능

"pub / media"디렉토리의 다음 폴더도 쓰기 가능합니다

- banners
- catalog
- images
- wysiwyg

3

그 가치에 대해이 문제가 몇 번 있었으며 권한을 확인한 후 서버가 아니라 이미지 파일 자체라는 것을 잊었습니다. 크기 나 파일 크기가 너무 커서 이미지를 여전히 업로드하지 않습니다.

나를위한 해결책은 다음과 같습니다.

  • 업로드하기 전에 HIGH-REZ 사진의 크기를 줄입니다.

  • 마 젠토 최대 해상도 증가 또는 이미지 업로드 System > Catalog > Product Image

  • .htaccess 또는 구성을 사용하여 서버의 PHP 파일 크기 제한을 늘리십시오 : https : //.com/questions/6292687/upload-6-mb-image-in-magento

2

미디어 폴더 media / tmp / catalog / product가 존재하는지 확인하고 "웹 서버가 해당 디렉토리를 쓸 수 있도록하십시오"


권한을로 설정하는 대신 777"웹 서버에서 해당 디렉토리를 쓸 수 있도록 설정"이라고 말하는 것이 좋습니다. 아이디어는 웹 서버가 이미지를 쓸 수 있도록 모든 단일 사용자에게 쓰기 권한을 부여 할 필요가 없다는 것입니다. (나는 downvoted 한 사람이 아니지만, 당신이 궁금해하는 경우를 대비하여, 이것이 아마도 그 이유 일 것입니다)
Dan

예 물론;)
Altravista

2

친절하게 체크 미디어 가진 폴더 777 당신 permission.If 또한 검사가 편집 모드 수단 수 있습니다 포함 가진 폴더에 777 권한을.

해당 폴더에 777 권한을 부여하면 문제가 해결되었습니다.


0

Plesk 관리 기관에서 만료 된 인증서 일 수 있습니다 (제 경우였습니다).

위의 단계를 시도했지만 작동하지 않았습니다. 거기에서 FileZilla를 통해 파일에 액세스하여 모든 폴더에 한 번에 권한을 부여하려고하므로 만료 된 인증서에 대한 오류 메시지가 표시됩니다. 상점 자체의 SSL 인증서가 아니라 Plesk의 관리입니다. 새로운 자체 서명 인증서를 작성하고 Plesk 관리를 적용했으며 모든 것이 정상으로 돌아 왔습니다.

이것은 나를 위해 일했습니다. 나는 여기에 내 공헌을 남긴다.

행운을 빕니다


0

vhost의 magento DocumentRoot가 올바르게 설정 되어 있으면 Magento 에 파일 업로드 버그 가 있습니다.

/path/to/magento/pub

대신 (더 이상 사용되지 않음)

/path/to/magento

업 로더가 파일을 만들려고합니다.

/path/to/magento/pub/pub/your_upload_dir

location pub 은 두 번 이동합니다. 그들은 그것을 2.2.0 이상에서 고칠 것이라고 말했지만 2.2.1에서는이 문제가 여전히 나타납니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.