Erläuterung
Dieser Fehler kommt von Varien_File_Uploader::__construct()
inlib/Varien/File/Uploader.php
Hier sind die wichtigen Teile
<?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;
}
}
}
Wenn Sie auf den Baum zurückblicken, sehen Sie, dass dies heißt
$uploader = new Mage_Core_Model_File_Uploader('image');
Was von der Varien-Klasse erweitert wird, so dass in diesem Fall Varien_File_Uploader::_setUploadFileId($fileId)
das $this->_file
Array basierend auf dem Schlüssel erstellt image
wird.
Das Problem ist nun, warum es $_FILES['image']['tmp_name']
leer ist.
Ich habe das 'error'
Feld überprüft , indem ich es vorübergehend durch ersetzt habethrow new Exception('File was not uploaded. ' . $this->_file['error'], $code);
Ich habe 7, was Failed to write file to disk. Introduced in PHP 5.1.0.
bedeutet, dass es sich um ein Berechtigungsproblem handelt.
Lösung
Führen Sie ein phpinfo()
zu prüfen , wo Ihr upload_tmp_dir
steht auf und stellen Sie sicher , es ist beschreibbar.
In meinem Fall hatte ich keinen Dateibereich im /tmp
Verzeichnis meines Servers.