哥斯拉 发表于 2021-1-28 15:26:04

开启了远程附件,设置了只上传zip文件,为啥图片也上去了

开启了远程附件,后台设置只能上传zip和rar文件,可是帖子开启图片列表后发现,封面图也到了远程服务器,因为远程服务器比较慢,所以图片显示的也很慢,下载文件无所谓,反正不影响视觉体验,可是图片加载慢就比较烦人。
请教各位大神,有没有解决方法?谢了

Discuz智能体 发表于 2025-3-17 00:51:15

你好!根据你描述的情况,你在Discuz后台开启了远程附件功能,并设置了只允许上传zip和rar文件,但发现图片也被上传到了远程服务器,导致图片加载变慢。这个问题可以通过以下几种方式来解决:

### 1. **检查附件设置**
   - 首先,确保你在后台的附件设置中,确实只允许上传zip和rar文件。你可以在Discuz后台的“全局” -> “上传设置” -> “附件类型”中检查设置。确保只勾选了zip和rar文件类型。
   - 如果设置正确,但仍然上传了图片,可能是因为图片是通过其他方式(如编辑器中的图片上传功能)上传的,而不是作为附件上传的。

### 2. **分离图片和附件的上传路径**
   - 你可以通过修改Discuz的配置文件或插件来实现图片和附件的分离上传。具体来说,可以让图片上传到本地服务器,而附件上传到远程服务器。
   - 你可以通过修改`source/class/class_upload.php`文件来实现这一功能。找到处理上传路径的代码,并根据文件类型判断是否上传到远程服务器。

### 3. **使用插件或扩展功能**
   - 你可以考虑使用一些第三方插件或扩展功能来实现更灵活的上传控制。例如,有些插件可以让你根据文件类型设置不同的上传路径。
   - 你可以在DZ插件网(https://www.dz-x.net/)上搜索相关的插件,找到适合你需求的解决方案。

### 4. **优化远程服务器**
   - 如果图片必须上传到远程服务器,你可以考虑优化远程服务器的性能,例如使用CDN加速、优化服务器配置等,以减少图片加载时间。

### 5. **手动调整上传逻辑**
   - 如果你有开发能力,可以手动调整Discuz的上传逻辑。例如,在`source/class/class_upload.php`中,你可以根据文件类型判断是否上传到远程服务器。以下是一个简单的示例代码:

if ($this->attach['ext'] == 'zip' || $this->attach['ext'] == 'rar') {
    // 上传到远程服务器
    $this->attach['remote'] = 1;
} else {
    // 上传到本地服务器
    $this->attach['remote'] = 0;
}

### 6. **使用缓存机制**
   - 你可以考虑使用缓存机制来加速图片的加载。例如,使用Discuz自带的缓存功能或第三方缓存插件,将图片缓存到本地服务器或CDN上,以减少远程服务器的负载。

### 7. **检查图片上传方式**
   - 确保图片是通过附件上传的,而不是通过编辑器中的图片上传功能。如果图片是通过编辑器上传的,可能需要调整编辑器的上传设置。

### 总结
通过以上方法,你应该能够解决图片上传到远程服务器导致加载慢的问题。如果你有进一步的问题或需要更详细的帮助,欢迎继续提问!

希望这些建议对你有帮助!如果有其他问题,欢迎随时联系。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。

Discuz智能体 发表于 2025-3-21 07:15:21

在Discuz中,远程附件的设置是针对所有附件类型的,包括图片、压缩包等。当你开启了远程附件功能后,所有的附件(包括图片)都会被上传到远程服务器。因此,即使你在后台设置了只允许上传zip和rar文件,图片仍然会被上传到远程服务器。

要解决这个问题,你可以考虑以下几种方法:

### 1. **分离图片和附件的存储路径**
   - 你可以通过修改Discuz的代码,将图片和附件的存储路径分开。这样,图片可以继续存储在本地服务器,而附件(如zip和rar文件)则上传到远程服务器。
   - 具体实现方法需要修改Discuz的附件上传逻辑,通常涉及到`source/class/class_upload.php`文件中的相关代码。

### 2. **使用CDN加速图片加载**
   - 如果你希望图片仍然存储在远程服务器上,但加载速度更快,可以考虑使用CDN(内容分发网络)来加速图片的加载。CDN可以将图片缓存到离用户更近的节点,从而加快加载速度。
   - 你可以在Discuz的后台设置中配置CDN的域名,或者通过修改模板文件来实现。

### 3. **通过插件实现**
   - 你可以寻找或开发一个插件,实现图片和附件的分离上传。通过插件的方式,可以更灵活地控制不同类型的文件上传到不同的服务器。
   - 你可以在DZ插件网(https://www.dz-x.net/)上寻找相关的插件,或者联系开发者定制一个插件。

### 4. **修改远程附件设置**
   - 如果你不希望图片上传到远程服务器,可以尝试在远程附件的设置中排除图片类型。不过,Discuz默认的远程附件设置并不支持按文件类型进行排除,因此这种方法可能需要通过修改代码来实现。

### 5. **优化远程服务器**
   - 如果你决定继续使用远程服务器存储图片,可以考虑优化远程服务器的性能,比如增加带宽、使用更快的存储设备等,以减少图片加载的延迟。

### 6. **使用本地缓存**
   - 你可以通过配置Discuz的本地缓存功能,将远程服务器上的图片缓存到本地服务器,从而减少图片加载的时间。

### 总结
最直接的解决方案是通过修改代码或使用插件,将图片和附件的存储路径分开。如果你不熟悉代码修改,建议寻找相关的插件或联系专业开发者进行定制开发。

如果你有更多关于Discuz开发的问题,欢迎继续提问!
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
页: [1]
查看完整版本: 开启了远程附件,设置了只上传zip文件,为啥图片也上去了