对pdf进行预览时前端报错:network error

在编制管理系统的时候,通过系统生成了excel和pdf文件;文件手动可以打开,设置了一个预览按钮对文件进行预览,但是在预览的时候前端报错:network error

img


并且一共生成4类文件,有3类文件是可以正常打开的,只有一类不能打开,并且文件均可以生成,且线程池均发生重启的现象。
无法预览的那个文件在前端中生成文件的方法处就已经报错

img


img


红色框内为正常情况
蓝色框内为错误情况

后端没有响应

检查一下浏览器支不支持打开pdf

从报错来看,在请求http://1ocalhost/: 8080/ti/eroject/record/preview?fileID=-1&fileTxpe=2 时,后端返回的Reponse是空的。你可以通过控制台的network查看一下。

4类文件和3类文件有啥区别,发个文件试一下

以下答案由GPT-3.5大模型与博主波罗歌共同编写:
这个问题可能有多个原因,以下是几个可能的解决方案:

1.检查文件路径是否正确

network error 表示前端无法访问到后端提供的文件路径,可能是路径填写错误,前端和后端的文件夹结构不一致。可以在前端调试工具中查看请求路径是否正确。

2.检查文件是否存在

如果文件路径是正确的,可能是后台服务没有正确地生成文件,或者文件没有保存到正确的路径中。建议在后台逻辑中添加对文件生成的判断,确保文件生成没有出现问题。

3.检查文件访问权限

文件权限问题也可能导致该错误。当后台服务生成了文件后,需要设置合适的权限才能被前端访问到。可以尝试将文件的权限改为 777,然后再次尝试访问。

4.尝试其他预览方式

PDF 文件的预览方式多种多样,可以尝试其他方式,如将 PDF 文件转换成图片展示,或者使用其他 PDF 阅读器插件进行预览。

下面是可能相关代码,供参考:

前端代码:

var pdfUrl = 'http://example.com/path/to/pdf';
var pdfObject = document.createElement("embed");
pdfObject.setAttribute("src",pdfUrl);
pdfObject.setAttribute("width","100%");
pdfObject.setAttribute("height","1000px");
document.body.appendChild(pdfObject);

后端代码:

@app.route('/preview-pdf')
def preview_pdf():
  filename = 'path/to/file.pdf'
  return send_file(filename, mimetype='application/pdf')

如果我的回答解决了您的问题,请采纳!

这种错误通常是由于前端在请求文件时无法访问到服务器上的文件导致的。可能是由于以下原因之一:

  1. 文件路径错误:确保你向服务器发送的是正确的文件路径,并且文件存在于该路径下。

  2. 跨域问题:如果服务器和前端代码不在同一域名下,就可能会出现跨域问题。解决方法是使用 CORS 或 JSONP 等技术来允许跨域访问。

  3. 权限问题:确保文件所在的文件夹有读取权限。

  4. 文件损坏:如果文件本身已经损坏,那么就无法正常打开和预览。可以尝试重新生成文件或检查文件是否完好。

我建议你先检查以上几个方面,看看能否解决你遇到的问题。如果还是无法解决,请提供更多详细信息,以便我了解问题的具体情况并提供更准确的建议。

可以借鉴下
https://blog.csdn.net/weixin_57246351/article/details/120071472

引用chatGPT作答,这个错误可能是由于多种原因引起的,下面是一些可能的解决方法:

1.检查网络连接是否正常。确保您的网络连接是稳定的,可以通过打开其他网站或进行其他网络活动来测试。

2.检查服务器设置是否正确。确保您的服务器设置正确,可以通过测试服务器连接或查看服务器设置来进行确认。

3.检查文件路径是否正确。确保您的文件路径是正确的,可以通过检查文件路径是否存在或通过其他方法来确认。

4.检查文件权限是否正确。确保您的文件权限设置正确,可以通过检查文件权限或通过其他方法来确认。

5.检查文件格式是否正确。确保您的文件格式是正确的,可以通过检查文件格式或通过其他方法来确认。