Php错误显示,而访问输入类型=文件使用jquery/ajax方法
Php error showing while accessing input type = file using jquery/ajax method
我需要使用jquery/ajax访问输入类型=file,以便我可以将值/file传递给php页面。但是它显示了以下错误信息:
Notice: Undefined index: file in D:'software installed'xampp'htdocs'contact-management
'editContactDetails.php on line 16
是否有任何问题在我下面的代码或有任何方式来访问它?
我的html代码
<form enctype="multipart/form-data">
<input type="file" name="file" id="file" class="file"/>
<input type="button" name="submit" value="Update Details" class="submit" id="UpdateDetails"/>
</form>
Jquery/Ajax代码:
$(document).ready(function() {
$("#UpdateDetails").click(function() {
var fn = $('#family_name').val();
var cdid = $('#cdid').val();
var family_name = $('#family_name').val();
var given_name = $('#given_name').val();
var work_phone = $('#work_phone').val();
var mobile_phone = $('#mobile_phone').val();
var email = $('#email').val();
var email_private = $('#email_private').val();
var file_des_1 = $('#file_des_1').val();
var file = $('#file').val();
$.ajax({ //create an ajax request to load_page.php
type: "POST",
url: "editContactDetails.php",
data : {
'cdid' : cdid,
'family_name' : fn,
'given_name' : given_name,
'work_phone' : work_phone,
'mobile_phone' : mobile_phone,
'email' : email,
'email_private' : email_private,
'file_des_1' : file_des_1,
'file' : file
},
dataType: "html", //expect html to be returned
success: function(response){
$("#successUpdate").html(response);
//alert(response);
}
});
});
});
Php文件代码
//uoload first docuement with description...
$file_des_1 = $_POST['file_des_1'];
$did = mt_rand(100000, 999999);
$file = $_FILES["file"]["name"];
$type = $_FILES["file"]["type"];
$size = ($_FILES["file"]["size"] / 1024);
$temp = $_FILES["file"]["tmp_name"];
//require file formate
$allowedExts = array("doc", "docx", "xls", "pdf");
$temp = explode(".", $_FILES["file"]["name"]);
$extension = end($temp);
//rename uploaded docuement
echo $doc_1 = $did.".".$extension;
$contacts_doc_directory = "contact_directory";
试试这个文件上传
<form enctype="multipart/form-data" >
<input type="file" name="file" id="file" class="file"/>
<input type="button" name="submit" value="Update Details" class="submit" id="UpdateDetails"/>
</form>
<script src="http://code.jquery.com/jquery-latest.min.js"
type="text/javascript"></script>
<script>
$(document).ready(function() {
$("#UpdateDetails").click(function() {
var formData = new FormData($('form')[0]);
alert(formData);
$.ajax({
url: 'editContactDetails.php', //Server script to process data
type: 'POST',
xhr: function() { // Custom XMLHttpRequest
var myXhr = $.ajaxSettings.xhr();
if(myXhr.upload){ // Check if upload property exists
// myXhr.upload.addEventListener('progress',progressHandlingFunction, false); // For handling the progress of the upload
}
return myXhr;
},
//Ajax events
// beforeSend: beforeSendHandler,
// success: completeHandler,
//error: errorHandler,
// Form data
data: formData,
//Options to tell jQuery not to process data or worry about content-type.
cache: false,
contentType: false,
processData: false
});//ajax
});
});
</script>
在开始处理传递给php脚本的数据之前,您应该检查这些数据是否实际传递给脚本…你可以使用isset()
和empty()
来检查一个值是否是你作为参数传递的一组变量。
所以你的脚本变成:
if (isset($_POST['file_des_1']) && !empty($_POST['file_des_1']) && isset( $_FILES["file"] ) && !empty( $_FILES["file"]["name"] )) {
//uoload first docuement with description...
$file_des_1 = $_POST['file_des_1'];
$did = mt_rand(100000, 999999);
$file = $_FILES["file"]["name"];
$type = $_FILES["file"]["type"];
$size = ($_FILES["file"]["size"] / 1024);
$temp = $_FILES["file"]["tmp_name"];
//require file formate
$allowedExts = array("doc", "docx", "xls", "pdf");
$temp = explode(".", $_FILES["file"]["name"]);
$extension = end($temp);
//rename uploaded docuement
echo $doc_1 = $did.".".$extension;
$contacts_doc_directory = "contact_directory";
}
相关文章:
- 删除表,但不删除表单和文件 jQuery
- Ruby on Rails:“找不到文件'jquery.ui.datepicker'”
- 从 html 页面调用文件 jQuery 文件
- Javascript 文件修改了未从中调用它的 html 文件?Jquery 选择器
- 未呈现Javascript文件/Jquery
- 上传文件jQuery ajax MVC
- 我在哪里可以得到这个文件jquery.min.js
- 使用委托点击按钮下载文件JQuery
- 找不到文件“jquery-ui”
- JavaScript文件(jQuery步骤)未在Google Chrome中加载
- 自动内联CSS从CSS文件(jquery?ajax吗?php ?)
- 如何使用本地json文件jquery或angularjs实现文本框的自动完成
- 在JSPX文件中包含JS文件(JQuery)
- 如何将变量值从后面的代码传递到外部JavaScript文件(jQuery文件)
- 如何获得扩展图像文件jquery.filer
- 检测设备和交换CSS文件- jQuery
- 警报文本从文件JQuery / javascript
- 如何排序日期和字符串在同一列在jquery插件有文件jquery. datatable .js
- 移动谷歌地图api代码到单独的文件+ jquery
- 获取按钮id从js文件和使用在另一个js文件- jquery