2013-08-25 138 views
1

我正在使用名爲jQuery file upload的插件將圖片上傳到頁面。目前它以原始圖像名稱作爲文件名(IMG_1234)上傳。我需要的圖像名稱的特定格式的服務器(例如1.123456.jpgjQuery File Upload'undefined'圖片網址

我發現這個PHP代碼,改變圖像名稱的工作原理:

class CustomUploadHandler extends UploadHandler 
{ 
    protected function trim_file_name($name, $type) { 
     $name = time()."_1"; 
     $name = parent::trim_file_name($name, $type); 
     return $name; 
    } 
} 

當我上傳一個圖片,其名稱正確,但圖像預覽的鏈接是undefined。這可以防止我通過插件刪除圖像。

變量data.urlundefined ...如果我回到沒有重命名圖像的原始代碼,一切工作正常。

有沒有人有這個插件的任何經驗,可以幫助?謝謝!

編輯:

我發現至少...返回的下載鏈接的功能(這也用於刪除)是給原來的文件名,而非更新的問題的一部分。我對PHP類非常陌生,所以我不確定變量的起源以及如何解決它。我非常感謝我能得到的任何幫助!

下面是該函數的PHP代碼:

protected function get_download_url($file_name, $version = null, $direct = false) { 
    if (!$direct && $this->options['download_via_php']) { 
     $url = $this->options['script_url'] 
      .$this->get_query_separator($this->options['script_url']) 
      .'file='.rawurlencode($file_name); 
      // The `$file_name` variable is the original image name (`IMG_1234`), and not the renamed file. 
     if ($version) { 
      $url .= '&version='.rawurlencode($version); 
     } 
     return $url.'&download=1'; 
    } 
    if (empty($version)) { 
     $version_path = ''; 
    } else { 
     $version_url = @$this->options['image_versions'][$version]['upload_url']; 
     if ($version_url) { 
      return $version_url.$this->get_user_path().rawurlencode($file_name); 
     } 
     $version_path = rawurlencode($version).'/'; 
    } 
    return $this->options['upload_url'].$this->get_user_path() 
     .$version_path.rawurlencode($file_name); 
} 

編輯2:我認爲這是與在選項'param_name' => 'files',。任何人都知道那是什麼?

回答

0

通過編輯UploadHandler.php中的trim_file_name函數修正它,而不是在index.php中擴展類。