ไม่สามารถอัปโหลดภาพในรูปแบบวีโอไอพี

ฉันมีโมดูลแบบกำหนดเองที่ฉันพยายามอัพโหลดรูปภาพ อย่างไรก็ตามฉันไม่สามารถอัพโหลดภาพได้

นี่คือไฟล์แบบฟอร์มของฉัน

<?php
    <form id="imageform" method="post" action="<?php echo $this->getFormAction(); ?>">
         <input type="file" id="chain_Image" value="" name="Image[]" class="input-text">
    </form>

โปรดทราบว่านี่เป็นเพียงส่วนเล็กๆ ของโค้ดของฉัน จริงๆ แล้วแบบฟอร์มนี้สามารถมีรูปภาพตัวเลขเท่าใดก็ได้ นั่นคือเราสามารถอัพโหลดได้มากกว่าหนึ่งภาพในแต่ละครั้ง

นี่คือ saveAction() ของฉัน:

 <?php
    $arr = $this->getRequest()->getPost('Image');
    foreach($arr as $image)
    {
       if(isset($_FILES[$image]['name']) and (file_exists($_FILES[$image]['tmp_name']))) 
       {             
           try 
           {
               $path = Mage::getBaseDir('media') . DS . 'banner' . DS;
               $uploader = new Varien_File_Uploader($image);
    $uploader->setAllowedExtensions(array('jpg','png','gif','jpeg'));
               $uploader->setAllowRenameFiles(false);
               $uploader->setFilesDispersion(false);
               $destFile = $path.$_FILES[$image]['name'];
               filename = $uploader->getNewFileName($destFile);
               $uploader->save($path, $filename);
               $postData['Image'] = $_FILES[$image]['name'];
           }
           catch(Exception $e) 
           {}
       }
       else
       {                                                      
           if(isset($postData[$image]['delete']) && $postData[$image]['delete'] == 1)
                $postData[$image] = '';
           else
                unset($postData[$image]);
       }
   }                          
   $bannerModel->addData($postData)->setId($this
                ->getRequest()->getParam('id'))->save();

อย่างไรก็ตาม มันไม่ได้อัปโหลดภาพของฉัน ดูเหมือนว่า $_FILES จะว่างเปล่าเมื่อฉันพิมพ์สิ่งนี้ รหัสของฉันมีปัญหาอะไร ช่วยฉันด้วย. ขอบคุณล่วงหน้า !!!


person Rajeev K Tomy    schedule 30.12.2013    source แหล่งที่มา
comment
คุณต้องเพิ่ม enctype="multipart/form-data" ในแบบฟอร์มของคุณ   -  person Zaheerabbas    schedule 30.12.2013
comment
ไม่.. ฉันมีมันอยู่ในไฟล์ edit.php   -  person Rajeev K Tomy    schedule 30.12.2013


คำตอบ (2)


ฉันหวังว่าจะมีข้อผิดพลาดในฟังก์ชั่นบันทึก นี่คือโค้ดตัวอย่างของฉันสำหรับการบันทึกรูปภาพพร้อมรายละเอียดอื่นๆ ลองดูนี่อาจช่วยคุณได้

$newsModel->setId($this->getRequest()->getParam('id'))
                                  ->setTitle($postData['title'])
                                  ->setImage($_FILES['image']['name'])
                                  ->setContent($postData['content'])
                                  ->setStatus($postData['status'])
                                  ->save();

คุณต้องบันทึกภาพโดยเรียกเป็น setImage($_FILES['image']['name']) ลองสิ่งนี้..

person Pavan Kumar    schedule 30.12.2013
comment
:ขอบคุณสำหรับการตอบกลับ. แต่ฉันยังมีฟิลด์อื่นที่ต้องบันทึกด้วย ฟิลด์อื่นๆ ทั้งหมดทำงานได้อย่างสมบูรณ์ยกเว้นการอัปโหลดรูปภาพนี้ ฉันสามารถใช้รหัสนี้เพื่อบันทึกการดำเนินการได้หรือไม่? - person Rajeev K Tomy; 31.12.2013
comment
ใช่.. รหัสนี้ใช้สำหรับการบันทึกเท่านั้น วางโค้ดนี้ใน try block of save action และเพิ่มฟิลด์อื่นๆ ที่คุณต้องการ แต่ฟิลด์รูปภาพจะต้องถูกเรียกในรูปแบบข้างต้นเท่านั้น - person Pavan Kumar; 31.12.2013

อย่าลืมใส่ enctype="multipart/form-data" ในพารามิเตอร์ของแบบฟอร์ม :

<form id="imageform" method="post" action="<?php echo $this->getFormAction(); ?>"  enctype="multipart/form-data">
         <input type="file" id="chain_Image" value="" name="Image[]" class="input-text">
    </form>
person ClaudioC    schedule 07.03.2014