You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Postman中直接用文件链接作为Django接口输入(无需下载)

解决方法

方案1:修改Django API,直接支持文件链接输入

既然你的API目前只接收上传的文件,最直接的方式是扩展API功能,让它可以接收文件链接作为参数,内部自动下载处理:

  • 调整API的视图函数,允许接收file_url参数(可放在form-data或JSON请求体中)
  • 新增从链接下载文件的逻辑,同时处理异常情况(比如链接失效、非xlsx文件等)
  • 复用你现有的xlsx编辑逻辑,处理下载后的文件再返回

示例代码片段:

import requests
from django.http import HttpResponse
from openpyxl import load_workbook

def process_xlsx_api(request):
    if request.method == 'POST':
        # 优先处理文件链接参数
        file_url = request.POST.get('file_url')
        if file_url:
            try:
                # 下载文件
                response = requests.get(file_url)
                response.raise_for_status()
                # 加载xlsx文件
                wb = load_workbook(filename=response.content)
                # 这里写入你的xlsx编辑逻辑...
                # 保存处理后的文件并返回
                response = HttpResponse(content_type='application/vnd.openxmlformats-officedocument.spreadsheetml.sheet')
                response['Content-Disposition'] = 'attachment; filename="edited_file.xlsx"'
                wb.save(response)
                return response
            except Exception as e:
                return HttpResponse(f"下载或处理文件出错: {str(e)}", status=400)
        
        # 保留原有的文件上传逻辑
        uploaded_file = request.FILES.get('file')
        if uploaded_file:
            # 原有的文件处理代码...
            pass
        return HttpResponse("请提供文件链接或上传文件", status=400)

之后在Postman里,直接在POST请求的form-data中添加file_url字段,填入目标xlsx文件的链接即可发送请求。

方案2:不修改API,用Postman预请求脚本自动下载文件

如果不想改动API,可以利用Postman的Pre-request Script功能,自动从链接下载文件,再把文件注入到当前请求的form-data中:

  1. 在Postman中打开你的API请求,切换到「Pre-request Script」标签
  2. 粘贴以下脚本(替换YOUR_FILE_URL为目标文件链接,FILE_FIELD_NAME为API接收文件的字段名):
const fileUrl = "YOUR_FILE_URL";
const fileFieldName = "FILE_FIELD_NAME";

pm.sendRequest(fileUrl, (err, res) => {
    if (err) {
        console.error(err);
        pm.test("下载文件失败", () => {
            throw new Error("无法从链接下载文件");
        });
    } else {
        // 将下载的二进制数据转为文件对象
        const file = new File([res.stream], "temp.xlsx", { type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" });
        // 设置到当前请求的form-data中
        pm.request.body.formdata.add({
            key: fileFieldName,
            value: file,
            type: "file"
        });
    }
});
  1. 切换到「Body」标签,确保form-data中已添加对应的文件字段(脚本会自动填充文件内容)
  2. 发送请求即可

注意事项:

  • 如果文件链接需要权限(比如带token),要在脚本的请求中添加对应的请求头
  • 确保Postman可以访问该文件链接(无防火墙/跨域限制)

内容的提问来源于stack exchange,提问作者ZAVERI SIR

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 17:45:49