这里我想上传并使用jquery ajax函数移动csv文件。
$("#file").change(function() {
alert($("#file").val());
$.ajax({
url: "<?php echo base_url(); ?>index.php/Task_controller/upload_tasksquestion",
type: "post",
dataType: 'json',
processData: false,
contentType: false,
data: {file: $("#file").val()},
success: function(text) {
alert(text);
if(text == "success") {
alert("Your image was uploaded successfully");
}
},
error: function() {
alert("An error occured, please try again.");
}
});
});
我的HTML代码是:
< input type="file" class="form-control" id="file" name="file">
我正在测试控制器功能上传的文件名 比如$ this-&gt; input-&gt; post('file');
但它没有来到控制器,我想将该文件移动到一个文件夹中。 请帮助我,我在做错误...
我的服务器端代码是:
$curdate=date('Y-m-d');
$path='./assets/fileuploads/';
$file=basename($_FILES['file']['name']);
list($txt, $ext) = explode(".", $file);
$actual_file_name = time().substr($txt, 5).".".$ext;
if(move_uploaded_file($_FILES['file']['tmp_name'],$path.$actual_file_name))
答案 0 :(得分:0)
您需要使用FormData通过AJAX发送文件。
将文件存储在FormData对象中,并将对象作为data
传递。
$("#file").change(function() {
var fd = new FormData();
fd.append('file', this.files[0]); // since this is your file input
$.ajax({
url: "<?php echo base_url(); ?>index.php/Task_controller/upload_tasksquestion",
type: "post",
dataType: 'json',
processData: false, // important
contentType: false, // important
data: fd,
success: function(text) {
alert(text);
if(text == "success") {
alert("Your image was uploaded successfully");
}
},
error: function() {
alert("An error occured, please try again.");
}
});
});
阅读File Uploading Class(尤其是来自“控制器”部分),了解如何处理服务器端的文件。