我現在所需的代碼使用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腳本。
我被卡住了。完全。任何幫助將不勝感激。
這裏可能有很多錯誤。你有.htaccess文件嗎?如果是,請粘貼詳細信息。還要從config/main.php文件中發佈你的Urlmanager規則。 – crafter 2014-09-24 14:44:17
你是什麼意思的「...手工訪問相同的網址...」 – crafter 2014-09-24 14:46:29
「手動訪問相同的網址」將是一個錯誤的翻譯在瀏覽器中打開該網址,而不是讓js做一個Ajax調用。 – FaustoW 2014-10-02 19:38:20