我尝试将krajee文件输入集成到我现有的表单中。 DEMO SITE
当我从我的计算机浏览文件并单击上传按钮(内置插件)时,我收到此错误:SyntaxError:JSON.parse:JSON数据第1行第1列的意外字符。
这个插件的作者告诉我,我必须在我的php文件中编写有效的json响应才能使用它,但他没有时间像我一样帮助个别案例。所以我从网站上阅读了文档,它有这一部分:(你可以在上面的演示网站上找到它)
发送数据(来自服务器)
您在uploadUrl中设置的服务器方法必须将数据作为json编码对象发回。您必须发送的唯一密钥是错误,该错误将是上传的错误消息,并将帮助插件识别文件上载中的错误。例如,服务器的响应将发送为{错误:'您不允许上传此类文件。'}。注意:该插件将自动验证并显示ajax异常错误。
重要
您必须从服务器发送有效的JSON响应,否则上传过程将失败。即使您没有遇到任何错误,也必须至少从服务器发送一个空的JSON对象{。}
要捕获并显示验证错误,您的JSON响应数据必须包含错误键,其值将是要显示的错误HTML标记。这是如上所述设置的。
不幸的是,我无法理解它,因为我只是一个新的PHP学习者,这超出了我的范围。但我在这里有我的php文件,希望有些专家可以帮我添加json响应,就像上面解释的文档一样。非常感谢你提前!
这是我的php文件:
<?php
if(isset($_POST["submit"])){
require("../configs/dbconnect.php");
/*Form variable */
$owner = mysql_real_escape_string($_POST["owner"]);
$title = mysql_real_escape_string($_POST["title"]);
$description = mysql_real_escape_string($_POST["description"]);
$city = mysql_real_escape_string($_POST["city"]);
$brand = mysql_real_escape_string($_POST["brand"]);
$marketprice = mysql_real_escape_string($_POST["marketprice"]);
$price = mysql_real_escape_string($_POST["price"]);
$phone = mysql_real_escape_string($_POST["phone"]);
/*** the upload directory ***/
$upload_dir= 'uploads';
/*** numver of files to upload ***/
$num_uploads = 5;
/*** maximum filesize allowed in bytes ***/
$max_file_size = 5000000;
/*** the maximum filesize from php.ini ***/
$ini_max = str_replace('M', '', ini_get('upload_max_filesize'));
$upload_max = $ini_max * 1024;
/*** a message for users ***/
$msg = 'Please select files for uploading';
/*** an array to hold messages ***/
$messages = array();
$err=array();
/*** check if a file has been submitted ***/
if(isset($_FILES['file']['tmp_name']))
{
/** loop through the array of files ***/
for($i=0; $i < count($_FILES['file']['tmp_name']);$i++)
{
// check if there is a file in the array
if(!is_uploaded_file($_FILES['file']['tmp_name'][$i]))
{
$messages[] = 'No file uploaded';
}
/*** check if the file is less then the max php.ini size ***/
//elseif($_FILES['image']['size'][$i] > $upload_max)
//{
// $messages[] = "File size exceeds $upload_max php.ini limit";
//}
// check the file is less than the maximum file size
elseif($_FILES['file']['size'][$i] > $max_file_size)
{
$messages[] = "File size exceeds $max_file_size limit";
}
else
{
//$temp = explode(".", $_FILES["file"]["name"][$i]);
//$extension = end($temp);
//$name[$i] = sha1(microtime()) . "." . $extension;
$name[$i]=$_FILES["file"]["name"][$i];
// copy the file to the specified dir
if(move_uploaded_file($_FILES['file']['tmp_name'][$i],$upload_dir.'/'.$name[$i]))
{
/*** give praise and thanks to the php gods ***/
$messages[] = $name[$i].' uploaded';
$image_path[$i]=$upload_dir.'/'.$name[$i];
}
else
{
/*** an error message ***/
$messages[] = 'Uploading '.$name[$i].' Failed';
}
}
}
}
$image_path_string=serialize($image_path);
$sql = "INSERT INTO memberpost(owner, title, description, city, brand, marketprice, price, phone, image) VALUES ('$owner', '$title','$description','$city','$brand','$marketprice','$price','$phone', '" . $image_path_string . "')";
$result = mysql_query($sql) or die ("Could not insert data into DB: " . mysql_error());
if(sizeof($messages) != 0)
{
foreach($messages as $err)
{
echo $err.'<br />';
}
}
}
?>
答案 0 :(得分:0)
你的echo
我认为......
将错误放在任何变量上echo json_encode(variable name)
。这就是如何发送JSON对象。