我可以在项目的资源文件夹中看到图像,但我仍然收到无效的网址错误

所以我有一个程序,用户可以上传图像,然后将它和产品保存到在线商店。但我有一个非常奇怪的问题,没有任何文件名被识别。基本上,用户使用文件选择器在本地上传文件。我已经尝试过我的资源文件夹,我已经尝试过资源/图像,我已经尝试将其保存到主/图像,并且每次发生相同的事情。用户选择他们想要上传的照片,我会看到它转到正确的文件夹,但是当用户点击上传并创建新产品时,会出现错误,指出无效的网址或资源不存在。这就是事情。资源确实存在。我在Intellij项目窗口中看到它。我甚至打印文件的路径到控制台,因为它不在其他地方,但不是,它是正确的文件路径。我想也许有一些奇怪的错字,所以我把文件拖到终端,不管它是确切的文件路径。我疯狂地试图解决这个问题。

上传发生的地方

public class UploadItems {

    @FXML private TextField productName;
    @FXML private TextField quantityForSale;
    @FXML private TextField prices;
    @FXML private Image image;
    @FXML private Button imageUploadBtn;
    @FXML private Button uploadBtn;
    private MainController mainController;
    private File file;
    private ConnectToDb connectToDb = new ConnectToDb();
    private StoreHomePageController storeHomePageController;
    private final String fileLocation = "/Users/myname/IdeaProjects/AmeenazonOnlineStore/src/main/Images";

    public UploadItems(){
        mainController = new MainController();
        storeHomePageController = new StoreHomePageController(mainController);

    }
    @FXML
    private void initialize(){

        imageUploadBtn.setOnAction(e -> {
            uploadImageBtn();
        });
        uploadBtn.setOnAction(e -> {
            uploadBtn();

        });
    }

这是产品类

public class Product {

    private String name;
    private String companyName;
    private double price;
    private int quantity;
    private String description;
    private ImageView imageView;
    private String fileName;
    private String info;
    private Image image;
 quantity, String description, Image image, String fileName, String info){

所以是的,我不知道发生了什么。这是因为我在FXML初始化中设置我的按钮操作吗?我可以看到.png文件被添加到我的项目中。当我看到它...在正确的文件夹中时,我得到一个无效的URL或资源不存在错误对我没有意义。我甚至可以将文件的视频剪辑添加到正确的位置,然后说那里没有文件。

将产品添加到主页的方法很好。它过去曾奏效。它实际上只是文件名给我一个错误。


largeQ
浏览 465回答 2
2回答

慕标5832272

该Image构造函数需要一个URL,而不是一个文件名。你错过了一个计划; 此外,有效文件名可能不是有效的URL。使用File或Path的功能转换为URL:String filename = new File(otherFileLocation + file.getName()).toURI().toString();
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java