我正在使用一个名为 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;
}
}
当我上传图像时,它的命名正确,但图像预览的链接是未定义
。这可以防止我通过插件删除图像。
变量data.url
是未定义
...如果我返回到不重命名图像的原始代码,一切都会正常。
有没有人有过使用这个插件的经验,可以提供帮助?谢谢!
编辑:
我至少发现了部分问题......返回下载链接的函数(也用于删除)给出了原始文件名,而不是更新后的文件名。我对 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',
有关。有人知道那是什么吗?
最佳答案
通过编辑 UploadHandler.php
中的 trim_file_name
函数而不是扩展 index.php
中的类来修复此问题。
关于php - jQuery 文件上传 'undefined' 图片 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18429882/