回答:
このエラーは、から来ているVarien_File_Uploader::__construct()
中lib/Varien/File/Uploader.php
ここに重要な部分があります
<?php
class Varien_File_Uploader
{
/**
* Uploaded file handle (copy of $_FILES[] element)
*
* @var array
* @access protected
*/
protected $_file;
const TMP_NAME_EMPTY = 666;
function __construct($fileId)
{
$this->_setUploadFileId($fileId);
if(!file_exists($this->_file['tmp_name'])) {
$code = empty($this->_file['tmp_name']) ? self::TMP_NAME_EMPTY : 0;
throw new Exception('File was not uploaded.', $code);
} else {
$this->_fileExists = true;
}
}
}
木を振り返ると、これは
$uploader = new Mage_Core_Model_File_Uploader('image');
これはVarienクラスから拡張されたものなので、この場合、はkey に基づいVarien_File_Uploader::_setUploadFileId($fileId)
て$this->_file
配列を構築しimage
ます。
だから今問題はなぜ$_FILES['image']['tmp_name']
空なのか?
'error'
一時的に置き換えてフィールドを確認しましたthrow new Exception('File was not uploaded. ' . $this->_file['error'], $code);
私は7を取得しました。これは、それがFailed to write file to disk. Introduced in PHP 5.1.0.
権限の問題であることを意味します。
a phpinfo()
を実行して、upload_tmp_dir
設定されている場所を確認し、書き込み可能であることを確認します。
私の場合、/tmp
サーバーのディレクトリのファイル領域が足りませんでした。
私は常にNo Flash Image Uploaderを使用してきました。これは問題なくCE v1.4-v1.7で動作しました。モジュールはMagento Connectを介して利用できなくなりましたが、そのソースコードはアクティブに維持され(2016年10月現在)、GitHubで利用できます。
拡張コードを取得して、本当に必要な場合は必要な部分だけを抽出することができます。
私は「いいえ」と言います。これは最初から可能ではありませんが、プラグインを見つけました:
http://www.paoloiannelli.com/2012/07/30/how-to-disable-flash-uploader-magento/
Flashを使用せずにjqueryを使用して複数の画像をアップロードできるMagento拡張機能は次の場所にあります。https://www.magentocommerce.com/magento-connect/multi-images-uploader-jquery-no-flash.html