Php 使用ajax上传文件并传递变量
我正在使用ajax上传图片。。事情进展得很顺利。但问题是我无法通过ajax将当前的唱片集id传递到php页面,那里有上传脚本。有人能帮忙吗?这是我的密码: index.phpPhp 使用ajax上传文件并传递变量,php,ajax,upload,Php,Ajax,Upload,我正在使用ajax上传图片。。事情进展得很顺利。但问题是我无法通过ajax将当前的唱片集id传递到php页面,那里有上传脚本。有人能帮忙吗?这是我的密码: index.php $(function () { $('body').on('click', '.upload', function(){ var form = new FormData($('#myform')[0]); $.ajax({
$(function () {
$('body').on('click', '.upload', function(){
var form = new FormData($('#myform')[0]);
$.ajax({
url: 'image_send.php',
type: 'POST',
success: function (r) {
$('.container').html(r);
},
data: form,
cache: false,
contentType: false,
processData: false
});
});
});
<div id="image_upload_form">
<form enctype="multipart/form-data" id="myform">
<input type="file" accept="image/*" multiple name="image[]" id="image" />
<input type="button" value="Upload images" class="upload" />
</form>
$(函数(){
$('body')。在('click','upload',函数()上{
var form=new FormData($('#myform')[0]);
$.ajax({
url:'image_send.php',
键入:“POST”,
成功:功能(r){
$('.container').html(r);
},
数据:表格,
cache:false,
contentType:false,
processData:false
});
});
});
我使用$album_id=@$_get['image_album']获取当前相册id
我的php代码:image\u send.php
foreach($_FILES['image']['tmp_name'] as $key => $tmp_name ){
if(((@$_FILES['image']['type'][$key] == 'image/jpeg') ||
(@$_FILES['image']['type'][$key] == 'image/jpg') ||
(@$_FILES['image']['type'][$key] == 'image/png') ||
(@$_FILES['image']['type'][$key] == 'image/tif') ||
(@$_FILES['image']['type'][$key] == 'image/tiff') ||
(@$_FILES['image']['type'][$key] == 'image/gif') ||
(@$_FILES['image']['type'] == 'image/png'))
&& (@$_FILES['image']['size'][$key] < 1073741824)) //10 mb in bytes
{
if(file_exists("image/".@$_FILES['image']['name'][$key])){
echo @$_FILES['image']['name'][$keys]."Already exists";
}
else{
$picture = @$_FILES['image']['name'][$key];
$image_upload_query = mysql_query("INSERT INTO image_upload_public VALUES('','$picture','Here I want to insert the current album_id')");
if($image_upload_query){
move_uploaded_file(@$_FILES['image']['tmp_name'][$key], "image/".$picture);
}
}
foreach($\u文件['image']['tmp\u名称']as$key=>$tmp\u名称){
如果((@$_文件['image']['type'][$key]=='image/jpeg')||
(@$_文件['image']['type'][$key]=='image/jpg')||
(@$_文件['image']['type'][$key]=='image/png')||
(@$_文件['image']['type'][$key]=='image/tif')||
(@$_文件['image']['type'][$key]=='image/tiff')||
(@$_文件['image']['type'][$key]=='image/gif')||
(@$_文件['image']['type']=='image/png'))
&&(@$_FILES['image']['size'][$key]<1073741824))//10 mb字节
{
如果(文件存在(“图像/”@$\u文件['image']['name'][$key])){
echo@$_文件['image']['name'][$keys].“已存在”;
}
否则{
$picture=@$_文件['image']['name'][$key];
$image\u upload\u query=mysql\u query(“插入到image\u upload\u公共值(“,$picture”,“我想在这里插入当前相册\u id”);
if($image\u upload\u query){
移动上传的文件(@$\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\$key],“图像/”$picture);
}
}
我不知道在ajax中我将在何处插入$album_id,以及如何在我的php页面中获得它。我知道我的脚本是vulnerbale to sql injection。我可以稍后处理。但目前我想知道如何将$album_id传递到另一个页面并将其插入到我的数据库中
<input type="hidden" name="album-id" value="something" />
然后将其包含在SQL中。您正在使用“POST”将数据发送到php文件(image\u send.php)
您需要使用$\u POST['image\u album']而不是$\u GET['image\u album']。您的脚本仍然容易受到任意文件上载和SQL注入的攻击。我知道..我稍后会处理。。
if ( isset($_POST['album-id']) ) {
$album_id = $_POST['album-id'];
}