如何在Java Servlet中实现此PHP代码

时间:2014-10-15 16:43:08

标签: java javascript php servlets

我试图通过拖放界面上传图片,我得到了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));函数,我认为必须有一个等效的方法。我需要帮助。感谢。

1 个答案:

答案 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注入攻击。