- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
所以我有一个程序,用户可以上传图像,然后将其和产品保存到在线商店。但我遇到了一个非常奇怪的问题,没有一个文件名被识别。基本上,用户使用文件选择器在本地上传文件。我已经尝试过将其保存到我的资源文件夹中,我已经尝试过将其保存到资源/图像中,并且尝试将其保存到主/图像中,并且每次发生同样的事情时。用户选择他们想要上传的照片,我看着它转到正确的文件夹,但是当用户单击上传并创建新产品时,会出现错误,指出无效的网址或资源不存在。事情是这样的。该资源确实存在。我看着它出现在我的 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();
});
}
private void uploadBtn(){
String name = productName.getText();
String otherFileLocation = "/Users/myname/IdeaProjects/AmeenazonOnlineStore/src/main/Images/";
int quantity = Integer.parseInt(quantityForSale.getText());
int price = Integer.parseInt(prices.getText());
String filename = otherFileLocation + file.getName();
if (!name.isEmpty() && quantity > 0 && price > 0){
String query = " INSERT INTO products(name, price, quantity, filename)"
+ " VALUES(?, ?, ?, ?)";
try {
PreparedStatement preparedStatement = connectToDb.getConn().prepareStatement(query);
preparedStatement.setString(1, name);
preparedStatement.setInt(2, price);
preparedStatement.setInt(3, quantity);
preparedStatement.setString(4, filename);
if (checkTableForProduct()){
// error is thrown here because the filename is invalid. printing to the console right here will show the valid file name
storeHomePageController.addToVBoxList(new Product(name, price, quantity, filename));
System.out.println("product added... hopefully ");
Alert alert = new Alert(Alert.AlertType.INFORMATION);
alert.setTitle("Item Successfully Uploaded!");
alert.setHeaderText("You can now sell your stuff. We can't wait for our cut");
alert.setContentText("You better not stiff us or we'll send our goons out to get you!");
alert.showAndWait();
}
} catch (SQLException ex) {
ex.printStackTrace();
} try {
Window window = uploadBtn.getScene().getWindow();
window.hide();
FXMLLoader loader = new FXMLLoader(getClass().getResource("/StoreHomePageLayout.fxml"));
loader.setController(new StoreHomePageController(mainController));
Stage secondaryStage = new Stage();
secondaryStage.setTitle("Ameenazon");
secondaryStage.setHeight(800);
secondaryStage.setWidth(800);
Scene scene = new Scene(loader.load());
secondaryStage.setScene(scene);
secondaryStage.show();
} catch (IOException ex) {
ex.printStackTrace();
}
}
}
private void uploadImageBtn(){
String otherFileLocation = "/Users/myname/IdeaProjects/AmeenazonOnlineStore/src/main/Images/";
Stage stage = new Stage();
FileChooser fileChooser = new FileChooser();
fileChooser.setTitle("Select Image");
file = fileChooser.showOpenDialog(stage);
if (file != null){
Path movefrom = FileSystems.getDefault().getPath(file.getPath());
Path target = FileSystems.getDefault().getPath(otherFileLocation + file.getName());
imageUploadBtn.getProperties().put(otherFileLocation, file.getAbsolutePath());
System.out.println("image upload button ");
try{
Files.move(movefrom,target, StandardCopyOption.ATOMIC_MOVE);
System.out.println("image moved");
} catch (IOException ex){
ex.printStackTrace();
}
}
}
这是产品类别
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){
public Product(String name, double price, int quantity, String fileNames) {
this.name = name;
this.companyName = companyName;
this.price = price;
this.description = description;
this.imageView = imageView;
this.quantity = quantity;
this.fileName = fileNames;
System.out.println(this.fileName);
System.out.println(fileNames);
// these both print the correct file path to the correct file which I can see in my project window
this.info = info;
this.image = new Image(fileNames);
// a bunch of getters
}
所以是的,我不知道发生了什么。这是因为我在 FXML 初始化中设置按钮操作吗?我可以看到 .png 文件已添加到我的项目中。当我可以在正确的文件夹中看到它时,我收到无效的网址或资源不存在错误,这对我来说没有意义。我什至可以将文件的视频剪辑添加到正确的位置,然后说那里没有文件。
将产品添加到首页的方法就可以了。它在过去曾发挥过作用。实际上只是文件名给了我一个错误。
谢谢
最佳答案
Image
构造函数需要一个 URL,而不是文件名。你缺少一个计划;此外,有效的文件名可能不是有效的 URL。
使用文件
或路径
功能转换为URL:
String filename = new File(otherFileLocation + file.getName()).toURI().toString();
关于java - 我可以在项目的资源文件夹中看到图像,但仍然收到无效网址错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56115590/
我正在使用 NetBeans 开发 Java 中的 WebService,并使用 gradle 作为依赖管理。 我找到了this article关于使用 gradle 开发 Web 项目。它使用 Gr
我正在将旧项目从 ant 迁移到 gradle(以使用其依赖项管理和构建功能),并且在生成 时遇到问题>eclipse 项目。今天的大问题是因为该项目有一些子项目被拆分成 war 和 jar 包部署到
我已经为这个错误苦苦挣扎了很长时间。如果有帮助的话,我会提供一些问题的快照。请指导我该怎么办????在我看来,它看起来一团糟。 *** glibc detected *** /home/shivam/
我在 Ubuntu 12.10 上运行 NetBeans 7.3。我正在学习 Java Web 开发类(class),因此我有一个名为 jsage8 的项目,其中包含我为该类(class)所做的工作。
我想知道 Codeplex、GitHub 等中是否有任何突出的项目是 C# 和 ASP.NET,甚至只是 C# API 与功能测试 (NUnit) 和模拟(RhinoMocks、NMock 等)。 重
我创建了一个 Maven 项目,包装类型为“jar”,名为“Y”我已经完成了“Maven 安装”,并且可以在我的本地存储库中找到它.. 然后,我创建了另一个项目,包装类型为“war”,称为“X”。在这
我一直在关注the instructions用于将 facebook SDK 集成到我的应用程序中。除了“helloFacebookSample”之外,我已经成功地编译并运行了所有给定的示例应用程序。
我想知道,为什么我们(Java 社区)需要 Apache Harmony 项目,而已经有了 OpenJDK 项目。两者不是都是在开源许可下发布的吗? 最佳答案 事实恰恰相反。 Harmony 的成立是
我正在尝试使用 Jsoup HTML Parser 从网站获取缩略图 URL我需要提取所有以 60x60.jpg(或 png)结尾的 URL(所有缩略图 URL 都以此 URL 结尾) 问题是我让它在
我无法构建 gradle 项目,即使我编辑 gradle 属性,我也会收到以下错误: Error:(22, 1) A problem occurred evaluating root project
我有这个代码: var NToDel:NSArray = [] var addInNToDelArray = "Test1 \ Test2" 如何在 NToDel:NSArray 中添加 addInN
如何在单击显示更多(按钮)后将主题列表限制为 5 个(项目)。 还有 3(项目),依此类推到列表末尾,然后它会显示显示更少(按钮)。 例如:在 Udemy 过滤器选项中,当您点击查看更多按钮时,它仅显
如何将现有的 Flutter 项目导入为 gradle 项目? “导入项目”向导要求 Gradle 主路径。 我有 gradle,安装在我的系统中。但是这里需要设置什么(哪条路径)。 这是我正在尝试的
我有一个关于 Bitbucket 的项目。只有源被提交。为了将项目检索到新机器上,我在 IntelliJ 中使用了 Version Control > Checkout from Ve
所以,我想更改我公司的一个项目,以使用一些与 IDE 无关的设置。我在使用 Tomcat 设置 Java 应用程序方面有非常少的经验(我几乎不记得它是如何工作的)。 因此,为了帮助制作独立于 IDE
我有 2 个独立的项目,一个在 Cocos2dx v3.6 中,一个在 Swift 中。我想从 Swift 项目开始游戏。我该怎么做? 我已经将整个 cocos2dx 项目复制到我的 Swift 项目
Cordova 绝对是新手。这些是我完成的步骤: checkout 现有项目 运行cordova build ios 以上生成此构建错误: (node:10242) UnhandledPromiseR
我正在使用 JQuery 隐藏/显示 li。我的要求是,当我点击任何 li 时,它应该显示但隐藏所有其他 li 项目。当我将鼠标悬停在文本上时 'show all list item but don
我想将我所有的java 项目(223 个项目)迁移到gradle 项目。我正在使用由 SpringSource STS 团队开发的 Gradle Eclipse 插件。 目前,我所有的 java 项目
我下载this Eclipse Luna ,对于 Java EE 开发人员,如描述中所见,它支持 Web 应用程序。我找不到 file -> new -> other -> web projects
我是一名优秀的程序员,十分优秀!