2012-02-03 18 views
5

में रेंडर प्रक्रिया अक्षम करें मैं अपनी अपलोड प्रक्रिया के लिए अपलोडिफ़ी का उपयोग करता हूं। समस्या यह है कि प्रत्येक अपलोड लिथियम नियंत्रक के दृश्य प्रस्तुत करने का प्रयास करता है। मेरे मामले में uploadify.html.php। मैं इस व्यवहार को कैसे अक्षम कर सकता हूं और केवल 200 ओके वापस कर सकता हूं।लिथियम

मेरे नियंत्रक कोड:

class UploadController extends \app\controllers\AppController { 

public function index() {} 

public function uploadify() { 
    Logger::write('info', 'start upload'); 

    if (!empty($this->request->data)) { 
     $fileData = $this->request->data['Filedata']; 
     $error = $fileData['error']; 
     if($error == UPLOAD_ERR_OK) { 
      // everything ok 
      $tempFile = $fileData['tmp_name']; 
      $targetPath = $this->request->env('DOCUMENT_ROOT') . $fileData['folder'] . '/'; 
      $targetFile = str_replace('//','/',$targetPath) . $fileData['name']; 
      move_uploaded_file($tempFile, $targetFile); 
      Logger::write('info', 'upload file successfull to ' . $targetFile); 
     } else if($error == UPLOAD_ERR_INI_SIZE || $error == UPLOAD_ERR_FORM_SIZE) { 
      // file size to large 
      Logger::write('error', 'file to large ' . $fileData['Filename']); 
     } else if($error == UPLOAD_ERR_PARTIAL) { 
      // only partial uplopad 
      Logger::write('error', 'uploaded partial ' . $fileData['Filename']); 
     } else if($error == UPLOAD_ERR_NO_FILE) { 
      // no file uploaded 
      Logger::write('error', 'couldn\'t upload ' . $fileData['Filename']); 
     } else { 
      Logger::write('error', 'Unknown error code ' . $error); 
     } 
    } else { 
     Logger::write('error', 'no form data'); 
    } 
} 
} 

उत्तर

9

केवल करने के लिए, प्रतिक्रिया, नहीं शरीर के हेडर renders सेट

$this->render(array('head' => true)) 

redirect()

डॉक्स के साथ एक ही: http://li3.me/docs/lithium/action/Controller::render

+0

कुछ वापस करने के लिए अपने महत्वपूर्ण को अपलोड करने के लिए अपलोड करें -> http://stackoverflow.com/questions/1399654/oncomplete-and-oncompleteall-events-failing-to-fire-when-using-uploadify – Mewel

0

आप दो तरीकों में से एक में इस बारे में जा सकते हैं।

पहले दृष्टिकोण ऑटो प्रतिपादन बंद करने की है: के बारे में

class MyController extends \lithium\action\Controller { 
    public function __construct(array $config = array()) { 
    $defaults = array('render' => array('negotiate' => true)); 
    return parent::__construct($config + $defaults); 
    } 
} 

आप पढ़ सकते हैं और अधिक:

class MyController extends \lithium\action\Controller { 
    public function __construct(array $config = array()) { 
    $defaults = array('render' => array('auto' => false)); 
    return parent::__construct($config + $defaults); 
    } 
} 

दूसरा दृष्टिकोण एक HTTP Accepts header भेजकर "सामग्री प्रकार बातचीत" का उपयोग किया जाएगा नियंत्रक कैसे कॉन्फ़िगर करें कि नियंत्रक here प्रस्तुत करता है।

+0

thx, लेकिन यह केवल काम करता है पूरी कक्षा के लिए। मेरे पास अन्य विधियां हैं जिन्हें रेंडर प्रक्रिया की आवश्यकता है। अगर कुछ विधि आधारित है? यदि नहीं, तो मुझे एक अन्य नियंत्रक बनाना होगा। – Mewel

0

इसे ठीक करने के लिए आप बस लाइन निम्नलिखित जोड़ने की जरूरत आपके नियंत्रक कार्रवाई:

$this->_render['head'] = true;