Zend 애플리케이션에 간단한 업로드 파일 옵션을 추가하는 데 몇 시간을 보냈습니다. 필요한 권한을 모두 두 번 확인했는데 모든 것이 잘 작동합니다. 확실히 간단히 말해 임시 폴더에 멋지게 업로드했지만 일시적인 폴더에 저장하면 영구 저장 위치로 이동할 수 없습니다. 아래 코드는 계속 실패합니다 ...젠드 move_uploaded_file 실패
정확하게 말하면, $ uploaded die 문으로 코드가 실패합니다. 내가 Action에서 바로 처리하는 것보다는 Model로 보내고 있기 때문에 문제가 될 수도 있다고 생각했지만 문제를 해결하지 못했습니다. 누구든지 올바른 방향으로 나를 가리킬 수 있습니까? 파일을 임시 파일에서 직접 가져 와서 원하는 영구 저장소에 넣을 수 없습니다.
감사합니다.
//This is the action that is called when form is submitted.
function addImageAction()
{
$imgForm = new Admin_Form_ImageUploadForm();
$imgForm->setAction('/admin/media/add-image');
$imgForm->setMethod('post');
$this->view->form = $imgForm;
if($this->getRequest()->isPost())
{
if(!$imgForm->image->receive())
{
$this->view->message = '<div class="popup-warning">Errors Receiving File.</div>';
$this->_redirect('/admin/media/add-image');
}
if($imgForm->image->isUploaded())
{
$imageModel = new Admin_Model_Image();
$imageId = $imageModel->addImage($imgForm->image->getFileName());
$this->_redirect('/admin/media/view-image/'.$imageId);
}
}
}
블록 # 2 - 모델
public function addImage($image)
{
// Process the New File
// Check to see if Filename is already in Database
$select = $this->select();
$select->where('filename=?', $image);
$row = $this->fetchRow($select);
if ($row)
{
die("Filename already exists in Database. Please try another file.");
}
// Move file to Storage Directory
// Check/Create Storage Directoy (YYYYMMDD)
// Temporarily set MEDIA_DIR
$mediaDir = APPLICATION_PATH . '/../public/media/uploads/';
$destinationDir = $mediaDir . date('Ymd');
if (!is_dir($destinationDir)){
$storageDir = mkdir($destinationDir);
}
// Save Image
$uploaded = is_uploaded_file($image);
if (!$uploaded) {
die("Image has not been uploaded");
}
$image_saved = move_uploaded_file($image, $destinationDir);
if(!$image_saved)
{
die("Image could not be moved");
}
// Create Alternative Sizes
// Save Data to Database Tables
$dateObject = new Zend_Date();
$row = $this->createRow();
$row->filename = $image;
$row->date_added = $dateObject->get(Zend_Date::TIMESTAMP);
$row->date_modified = $dateObject->get(Zend_Date::TIMESTAMP);
$row->save();
// Fetch the ID of the newly created row
$id = $this->_db->lastInsertId();
// Retrieve IPTC Data
// Retrieve EXIF Data
// Return Image ID
return $id;
}
정확히 일치합니다. 고마워요! –
np, 기꺼이 도와 드리겠습니다;) –