jQuery file uploadというプラグインを使用して、画像をページにアップロードしています。現在、元の画像名をファイル名 ( IMG_1234
) としてアップロードします。サーバー上のイメージ名に特定の形式が必要です (例: 1.123456.jpg
)
イメージ名を変更するために機能する次の 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.url
はundefined
... 画像の名前を変更しない元のコードに戻ると、すべて正常に動作します。
このプラグインを使用した経験がある人はいますか? ありがとう!
編集:
少なくとも問題の一部が見つかりました... ダウンロード リンクを返す関数 (削除にも使用されます) は、更新されたファイル名ではなく、元のファイル名を指定しています。私は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);
}
EDIT 2:オプションに関係があると思い'param_name' => 'files',
ます。それが何をするか知っている人はいますか?