AJAX POST文件上载控件到PHP文件
使用AJAX,我将文件上载控制值发布到PHP文件 文件上传控制如下:AJAX POST文件上载控件到PHP文件,php,jquery,ajax,image,form-data,Php,Jquery,Ajax,Image,Form Data,使用AJAX,我将文件上载控制值发布到PHP文件 文件上传控制如下: <input class="form-control" type="file" id="policy_image" name="policy_image" accept="image/*"> 在我的PHP文件中,我得到如下所示的发布值 PHP文件: $name = $_POST['policy']; $imgFile = $_FILES['file']['name']; $tmp_dir = $_FILES['
<input class="form-control" type="file" id="policy_image" name="policy_image" accept="image/*">
在我的PHP文件中,我得到如下所示的发布值
PHP文件:
$name = $_POST['policy'];
$imgFile = $_FILES['file']['name'];
$tmp_dir = $_FILES['file']['tmp_name'];
$imgSize = $_FILES['file']['size'];
$upload_dir = 'assets/img/policy/'; // upload directory
$imgExt = strtolower(pathinfo($imgFile,PATHINFO_EXTENSION)); // get image extension
// valid image extensions
$valid_extensions = array('jpeg', 'jpg', 'png', 'gif'); // valid extensions
// rename uploading image
$userpic = rand(1000,1000000).".".$imgExt;
// allow valid image file formats
if(in_array($imgExt, $valid_extensions)){
// Check file size '5MB'
if($imgSize < 5000000) {
move_uploaded_file($tmp_dir,$upload_dir.$userpic);
}
else{
$errMSG = "Sorry, your file is too large.";
}
}
else{
$errMSG = "Sorry, only JPG, JPEG, PNG & GIF files are allowed.";
}
// if no error occured, continue ....
if(!isset($errMSG))
{
$stmt = $DB_con->prepare('INSERT INTO policy(name,image) VALUES(:name, :image)');
$stmt->bindParam(':name',$name);
$stmt->bindParam(':image',$userpic);
if($stmt->execute())
{
$successMSG = "new record succesfully inserted ...";
}
else
{
$errMSG = "error while inserting....";
}
}
$name=$\u POST['policy'];
$imgFile=$\u文件['file']['name'];
$tmp_dir=$_FILES['file']['tmp_name'];
$imgSize=$_文件['file']['size'];
$upload_dir='assets/img/policy/';//上载目录
$imgExt=strtolower(路径信息($imgFile,路径信息_扩展));//获取图像扩展名
//有效的图像扩展
$valid_extensions=array('jpeg','jpg','png','gif');//有效扩展名
//重命名上载图像
$userpic=兰特(10000000)。“..$imgExt;
//允许使用有效的图像文件格式
if(在数组中($imgExt,$valid_扩展名)){
//检查文件大小“5MB”
如果($imgSize<5000000){
移动上传的文件($tmp\u dir,$upload\u dir.$userpic);
}
否则{
$errMSG=“对不起,您的文件太大。”;
}
}
否则{
$errMSG=“对不起,只允许使用JPG、JPEG、PNG和GIF文件。”;
}
//如果没有发生错误,请继续。。。。
如果(!isset($errMSG))
{
$stmt=$DB_con->prepare('INSERT-INTO-policy(name,image)值(:name,:image)');
$stmt->bindParam(':name',$name);
$stmt->bindParam(':image',$userpic);
如果($stmt->execute())
{
$successsg=“新记录成功插入…”;
}
其他的
{
$errMSG=“插入时出错…”;
}
}
现在我遇到了错误,比如未定义索引:policy
和未定义索引:policy\u image
尝试以下操作:
var file_data = $('#policy_image').prop('files')[0];
var form_data = new FormData();
form_data.append('policy_image', file_data);
$.ajax({
url : 'addpolicy.php',
cache : false,
contentType : false,
processData : false,
data : form_data,
type : 'post',
success : function(output){
alert(output);
}
});
Php:
if($\u文件['policy\u image']['error']>0){
回显“错误:”.$\u文件['policy_image']['Error'].
;
}
否则{
如果(移动上传的文件($文件['policy\u image']['tmp\u name'],'uploads/'。$文件['policy\u image']['name']))
{
echo“文件上传成功”;
}
}
upload.php
$('#upload')。在('单击',函数()上){
var file_data=$('#sortpicture').prop('files')[0];
var form_data=new FormData();
表单\数据。追加('文件',文件\数据);
警报(表格数据);
$.ajax({
url:'addpolicy.php',//指向服务器端php脚本
dataType:'text',//如果PHP脚本有什么需要的话,那么它将返回什么
cache:false,
contentType:false,
processData:false,
数据:表格数据,
键入:“post”,
成功:功能(响应){
警报(响应);
}
});
});
addpolicy.php
在表单数据中,您将文件命名为file
,而不是policy\u image
@RoryMcCrossan,因此我需要调用$\u文件['file']['name']像这样?即使这样显示未定义索引:file
请查看我的编辑上方。在那之后我在做我的事情。如何与您的代码集成?我正在通过AJAXdata:{'policy':$('#policy').val(),'policy#image':policy#image},
请查看我的编辑上方。在那之后我在做我的事情。我想如何与您的代码集成?我仍然得到未定义索引:policy
和未定义索引:file
。我想我又犯了一个错误。
var file_data = $('#policy_image').prop('files')[0];
var form_data = new FormData();
form_data.append('policy_image', file_data);
$.ajax({
url : 'addpolicy.php',
cache : false,
contentType : false,
processData : false,
data : form_data,
type : 'post',
success : function(output){
alert(output);
}
});
if ( $_FILES['policy_image']['error'] > 0 ){
echo 'Error: ' . $_FILES['policy_image']['error'] . '<br>';
}
else {
if(move_uploaded_file($_FILES['policy_image']['tmp_name'], 'uploads/' . $_FILES['policy_image']['name']))
{
echo "File Uploaded Successfully";
}
}
upload.php
$('#upload').on('click', function() {
var file_data = $('#sortpicture').prop('files')[0];
var form_data = new FormData();
form_data.append('file', file_data);
alert(form_data);
$.ajax({
url: 'addpolicy.php', // point to server-side PHP script
dataType: 'text', // what to expect back from the PHP script, if anything
cache: false,
contentType: false,
processData: false,
data: form_data,
type: 'post',
success: function(response){
alert(response);
}
});
});
addpolicy.php
<?php
if ( 0 < $_FILES['file']['error'] ) {
echo 'Error: ' . $_FILES['file']['error'] . '<br>';
}
else {
move_uploaded_file($_FILES['file']['tmp_name'], 'uploads/' . $_FILES['file']['name']);
echo "true";
}
?>