[英]upload image form in ajax doesn't work
您好,我想上传一些图片到我的服务器。 当我不使用ajax.load将页面加载到另一个页面时,它可以工作。 因此,通过直接链接可以正常工作。 但我想单击一个链接,打开上传表格并上传图片(全部在一个窗口中)。 这是因为页面在上传之前正在刷新还是其他问题? 不知道如何解决这个问题。
码:
<?php
include('includes/connect.php');
if(isset($_POST['uploadImg'])){
$extension = end(explode(".", $_FILES["file"]["name"]));
$name = $_FILES["file"]["name"];
if (file_exists("upload/" . $_FILES["file"]["name"]))
{
mysql_query("INSERT INTO images (itemID,imgPath,imgName,imgExtension,imgAlt) VALUES (".$_POST['itemNumber'].",'upload','".$name."','".$extension."','".$name."')")or die('kan niet uploaden'.mysql_error());
}
else
{
move_uploaded_file($_FILES["file"]["tmp_name"],
"upload/" . $_FILES["file"]["name"]);
echo "Uw afbeelding is toegevoegd aan item".$_POST['itemNumber'];
echo "<a id='uploadNew' href='#'>Nog een item uploaden</a>";
}
mysql_query("INSERT INTO images (itemID,imgPath,imgName,imgExtension,imgAlt) VALUES (".$_POST['itemNumber'].",'upload','".$name."','".$extension."','".$name."')")or die('kan niet uploaden'.mysql_error());
}
?>
<form method="post" enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="file" name="file" id="file" />
Toevoegen aan:
<select name="itemNumber">
<?
$result = mysql_query("SELECT * FROM items");
while($row = mysql_fetch_array($result))
{
echo '<option name="itemVal" value="'.$row['itemID'].'">'.$row['itemTitle'].'</option>';
echo "<br />";
}
?>
</select>
<input type="submit" name="uploadImg" value="submit" />
</form>
问题来自于在加载AJAX之前将表单发送到父页面的事实。 您发布的部分页面是通过第二个HTTP请求检索的,并且未设置任何POST参数。
最好的选择是在加载AJAX的父页面中添加php脚本。 还要在表单元素中指定“目标”属性,以便跟踪哪个服务器页面正在处理请求。
ajax不能直接上传您的图片,您应该使用一些插件来上传图片,
以前,我曾使用此插件(ajax.form)即时上传图片 。
单击链接,在此链接中有一个简单示例,说明如何使用此插件并上传图像。.http ://blog.webtech11.com/2012/03/18/ajax-based-instant-image-upload.html
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.