我试图通过拖放界面上传图片,我得到了JavaScript代码here,但服务器端代码是用PHP实现的,如下所示(我修改它以将图像插入数据库):
<?php
//Connect to database
mysql_connect("localhost", "root", "something-strange") or die(mysql_error());
mysql_select_db("business_clax") or die(mysql_error());
// The posted data, for reference
$file = $_POST['value'];
$name = $_POST['name'];
if(!isset($file))
{
echo "Please select an image.";
}
//This is the line of code I really want in Java
$image = addslashes(file_get_contents($file)); //SQL Injection defence!
$image_name = addslashes($name);
$sql = "UPDATE `adverts` SET `photos` = '{$image}' WHERE `id` = '1'";
if (!mysql_query($sql)) { // Error handling
echo "Something went wrong! :(";
}
?>
上面的代码工作得很好,但我需要在Java中实现它。
我尝试在Java Servlet中实现上面的代码,但我不知道如何在Java中执行file_get_contents($file)
和addslashes(file_get_contents($file));
函数,我认为必须有一个等效的方法。我需要帮助。感谢。
答案 0 :(得分:0)
要获取文件的byte[]
表示,我会查看Apache FileUtils库,特别是org.apache.commons.io.FileUtils.readFileToByteArray(java.io.File file)
方法。
要获取文件的String
表示,请使用org.apache.commons.io.FileUtils.readFileToString(java.io.File file)
(您还需要了解java文件。)
此外,java.sql.PreparedStatement
对象可防范SQL注入攻击。