php 移动上传文件,ajax(jquery)php脚本//移动上传的文件问题

我正在研究

画廊上传

-函数与

JQuery Ajax

PHP

整个库功能包含三个部分:

形式

作为

查看\u create-char.php

id='add_image_gallery'>

";

Ajax脚本

作为

MIN JS

$(document).ready(function(){

$("#add_image_gallery").click(function(){

var fd = new FormData();

var files = $('#file')[0].files[0];

var name = $('#owner').attr("value");

fd.append('file',files);

fd.append('name',name);

$.ajax({

url: 'includes/gallery_upload.php',

type: 'post',

data: fd,

contentType: false,

processData: false,

success: function(response){

if(response != 0){

alert('file uploaded');

}else{

alert('file not uploaded');

}

},

});

});

});

PHP脚本

作为

图库上传.php

include 'dbh.inc.php';

$owner = $_POST['name'];

$file = $_FILES['file'];

$fileName = $_FILES['file']['name'];

$fileTmpName = $_FILES['file']['tmp_name'];

$fileSize = $_FILES['file']['size'];

$fileError = $_FILES['file']['error'];

$fileType = $_FILES['file']['type'];

$fileExt = explode('.', $fileName);

$fileActualExt = strtolower(end($fileExt));

$allowed = array('jpg', 'jpeg', 'png', 'gif');

$fileNameNew = uniqid('', true).'.'.$fileActualExt;

$fileDestination = 'uploads/'.$fileNameNew;

move_uploaded_file($fileTmpName, $fileDestination);

$sql = "INSERT INTO

characters_gallery (owner, image) VALUES ('$owner',

'$fileNameNew');";

$result = mysqli_query($conn, $sql);

目标是使用Ajax上传图像,并在字符库表中插入两个值。首先是表的所有者,然后是由PHP脚本生成的实际图像的名称。

这是可行的。

但实际文件不会被移动到指定的文件夹/上载

移动上传的文件()。

. 尽管我的数据库中的表中充满了这两个值,但它仍然是空的

拥有者

法兰西纽

. 让我困惑的是,在我使用这个Ajax脚本之前,这个php脚本可以将文件移动到uploads文件夹。但它不适用于脚本。

我很感谢你的帮助

编辑---对有关SQL注入的警告的反应:

我不确定我是否像应该做的那样使用这个编辑,但它是一个附加信息。如果我错了,请删除我的编辑。

我试图添加准备好的语句,并想知道是否消除了SQL注入的任何更大风险:

include_once 'characterfunctions.inc.php';

include 'dbh.inc.php';

$owner = mysqli_real_escape_string($conn, $_POST['name']);

$file = mysqli_real_escape_string($conn, $_FILES['file']);

$fileName = $_FILES['file']['name'];

$fileTmpName = $_FILES['file']['tmp_name'];

$fileSize = $_FILES['file']['size'];

$fileError = $_FILES['file']['error'];

$fileType = $_FILES['file']['type'];

$fileExt = explode('.', $fileName);

$fileActualExt = strtolower(end($fileExt));

$allowed = array('jpg', 'jpeg', 'png', 'gif');

$fileNameNew = uniqid('', true).'.'.$fileActualExt;

$fileDestination = '../uploads/'.$fileNameNew;

move_uploaded_file($fileTmpName, $fileDestination);

$sql = "INSERT INTO characters_gallery (owner, image) VALUES (?, ?);";

$stmt = mysqli_stmt_init($conn);

if (!mysqli_stmt_prepare($stmt, $sql)) {

echo "SQL Error";

} else {

mysqli_stmt_bind_param($stmt, "ss", $owner, $fileNameNew);

mysqli_stmt_execute($stmt);

}

$result = mysqli_query($conn, $sql);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值