awin-x 2025-02-17 13:58 采纳率: 0%
浏览 8

windows下curl上传文件,卡住,什么反应也没有

windows下curl上传文件,卡住,什么反应也没有

想用bat实现上传文件,来实现图床的作用。下面是精简的上传过程,但是上传是只要设置的文件大小就卡住完全不动了,不设置的话api报错是{"code":500,"message":"http: no such file","data":null}

@echo off
setlocal enabledelayedexpansion

set URL=http://...................top:65244/api/fs/form
set token=alist-dc6981c9-...................
set filepath=F:\Work_Area\图片\logo\logo.png
set uploadpath=/piclist

dir /-C %filepath% | findstr : > tmp.txt
for /f "tokens=3" %%i in (tmp.txt) do set filesize=%%i
del tmp.txt

set header=-H "Authorization:%token%" -H "File-Path:%uploadpath%" -H "Content-Type:multipart/form-data" 
set cmd=curl -X PUT %header%  --form-string "file=@%filepath%" %URL%

echo %cmd%

%cmd%
pause
endlocal
```shell
  • 写回答

3条回答 默认 最新

  • 阿里嘎多学长 2025-02-17 13:58
    关注

    阿里嘎多学长整理AIGC生成,因移动端显示问题导致当前答案未能完全显示,请使用PC端查看更加详细的解答过程

    解决方案

    你遇到的问题可能是由于 curl 命令在 Windows 下的实现问题导致的。可以尝试以下解决方案:

    1. 使用 curl 命令的 -v 选项来启用详细日志,检查上传过程中的错误信息:
    curl -v -X POST -F "file=@path/to/your/file" http://your/api/endpoint
    

    这将帮助你了解上传过程中的错误信息。

    1. 检查文件路径和名称是否正确,确保文件路径正确,文件名不包含特殊字符。

    2. 尝试使用 curl 命令的 -T 选项来指定文件名:

    curl -X POST -T "path/to/your/file" http://your/api/endpoint
    

    这将将文件名指定为 path/to/your/file

    1. 如果上述方法仍然不行,可以尝试使用 powershellcmd 命令来实现上传:
    Invoke-WebRequest -Method Post -Uri http://your/api/endpoint -File "path/to/your/file"
    

    powershell -Command "(New-Object System.Net.WebClient).UploadFile('http://your/api/endpoint', 'path/to/your/file')"
    

    这将使用 powershellcmd 命令来实现文件上传。

    1. 如果你使用的是 curl 命令的 bat 文件,可以尝试使用 start 命令来启动 curl 命令:
    start curl -X POST -F "file=@path/to/your/file" http://your/api/endpoint
    

    这将在新的命令行窗口中启动 curl 命令。

    如果你仍然遇到问题,可以提供更多的错误信息和上传过程中的日志信息,以便更好地帮助你解决问题。

    评论

报告相同问题?

问题事件

  • 创建了问题 2月17日