如果您知道如何将文件发送到 FastAPI 服务器并在 /predict 端点中访问它以使用我的模型进行预测,请帮助我。
我已经使用 /predict 端点部署了模型并完成了uvicorn main:app部署,但唯一的输入是文档位于我的本地电脑中,那么如何将其发送到 FastAPI?
我已经浏览了 FastAPI 的文档,并在那里找到了这个示例代码,但挑战是该代码创建了一个用于上传文件的 UI,这不是我想要的。
from typing import Optional
from fastapi import FastAPI
from fastapi import FastAPI, File, UploadFile
from pydantic import BaseModel
from typing import List
from fastapi.responses import HTMLResponse
app = FastAPI()
class User(BaseModel):
user_name: dict
@app.post("/files/")
async def create_files(files: List[bytes] = File(...)):
return {"file_sizes": [len(file) for file in files]}
@app.post("/uploadfiles/")
async def create_upload_files(files: List[UploadFile] = File(...)):
return {"filenames": [file.filename for file in files]}
@app.get("/")
async def …Run Code Online (Sandbox Code Playgroud) URL:http:// localhost:8080/RESTfulExample/rest/file/upload 方法:POST
回应:
相同的代码正在使用html表单,但在postman中它投掷了400个BAD REQUEST,我在google上查找解决方案并发现边界丢失,如何解决?因为我必须通过Jquery和rest客户端从移动应用程序和Web客户端等多个客户端接收文件.
@Path("/file")
public class UploadFileService {
@POST
@Path("/upload")
@Consumes(MediaType.MULTIPART_FORM_DATA)
public Response uploadFile(@FormDataParam("file") InputStream uploadedInputStream,
@FormDataParam("file") FormDataContentDisposition fileDetail) {
try {
String uploadedFileLocation = "/home/nash/" + fileDetail.getFileName();
// save it
writeToFile(uploadedInputStream, uploadedFileLocation);
String output = "File uploaded to : " + uploadedFileLocation;
System.out.println("File uploaded..........");
return Response.status(200).entity(output).build();
} catch (Exception e) {
e.printStackTrace();
System.out.println("Exception " + e);
return null;
}
}
// save uploaded file to new location
private void writeToFile(InputStream …Run Code Online (Sandbox Code Playgroud)