2014-09-24 67 views
1

我現在所需的代碼使用Yii v1.0和uber uploader來實現文件上傳。它通過從js文件中的jquery.post調用超級上傳者perl腳本來實現。使用與PHP版本28年3月5日Yii解析url作爲控制器/操作而不是執行底層腳本

Perl腳本一個GoDaddy的Linux虛擬服務器林終於得到所謂的由線ubr_file_upload.js:

jQuery.post(this.path_to_link_script, data, function(){}, "script"); 

其中path_to_link_script是/scgi-bin/ubr_upload.pl

<form id="<?php echo $PARMS[$i]['id'];?> 
    _ubr_upload_form" name="<?php echo $PARMS[$i]['id'];?> 
    _ubr_upload_form" method="post" enctype="multipart/form-data" 
    action="#" onSubmit="return UU<?php echo $i?>.linkUpload();">` 

這是由警予的widget渲染:點擊提交按鈕時,會出現這種情況稱爲linkUpload一個js函數,它是從上傳表單中fileUpload.php稱爲內

$this->render('fileUpload',array('PARMS'=>$this->_uberSettings->PARMS, 
    'debug_ajax'=>$this->_uberSettings->INI['debug_ajax']));` 

當用戶去窗體中選擇一個文件,然後點擊上傳,我看到下面的錯誤在Chrome的控制檯:

POST https://www.example.com/scgi-bin/ubr_upload.pl?upload_id=b5XXXXXXXXXbcc0 
    404 (CHttpException) 

(XS加入到十個分量隱私)

然後,檢查網絡選項卡,我看到按下提交按鈕時被調用後,下面的調用失敗:

https://www.example.com/scgi-bin/ubr_upload.pl?upload_id=b5XXXXXXXXXbcc0 

它得到的響應如下:

Page Not Found 

Unable to resolve the request "scgi-bin/ubr_upload.pl". 

The requested URL was not found on this server. If you entered the URL manually please check your spelling and try again. 

If you think this is a server error, please contact [email protected] 

它看起來就好像Yii正在嘗試解析url而不是執行腳本一樣。

但是,如果我手動訪問相同的URL(https://www.example.com/scgi-bin/ubr_upload.pl?upload_id=b5XXXXXXXXXbcc0),它會正確執行perl腳本。

我被卡住了。完全。任何幫助將不勝感激。

+0

這裏可能有很多錯誤。你有.htaccess文件嗎?如果是,請粘貼詳細信息。還要從config/main.php文件中發佈你的Urlmanager規則。 – crafter 2014-09-24 14:44:17

+0

你是什麼意思的「...手工訪問相同的網址...」 – crafter 2014-09-24 14:46:29

+0

「手動訪問相同的網址」將是一個錯誤的翻譯在瀏覽器中打開該網址,而不是讓js做一個Ajax調用。 – FaustoW 2014-10-02 19:38:20

回答

0

最終,問題出現在了uber上傳器的小部件EuberUploaderWidget中。該小部件使用硬編碼路徑(在將整個安裝移到新文件夾後當然是錯誤的)用$this->_uberSettings->TEMP_DIR = ...重新聲明瞭TEMP_DIR。 我沒有在那裏檢查,因爲我已經在模型中修改它,再加上優步上傳者並沒有給任何錯誤,這會導致我朝那個方向發展,我們最終嘗試這種方式是完全隨機的。

相關問題