首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >表单输入的文件上传AJAX不起作用

表单输入的文件上传AJAX不起作用
EN

Stack Overflow用户
提问于 2016-01-14 15:22:15
回答 1查看 34关注 0票数 0

我一直在寻找解决方案,并尝试了它们,但我找到的答案中没有一个解决了我的问题。这就是它。

我正在一个简单的网络应用程序与输入详细信息和文件上传(.docx文件)。我使用FormData处理表单数据,但服务器端操作只适用于text, password, date等表单输入。

这是我的JS代码;注释行就是我尝试过但不起作用的那行。

代码语言:javascript
复制
var myForm = $("#add-thesis-form");
    var formData = new FormData(myForm);

    //var formData = myForm.serialize();

    $.ajax({
        type: "POST" ,
        url: "thesis-scripts/add_thesis.php",
        data: formData
        // processData: false,
        // contentType: false
    }).done(function(data){
        $('#addThesisModal').modal('hide');
        alert(data);
        //alert("Successfully saved a record to the database. ");
        showThesis();
    });

我的PHP代码(使用Meekro DB)

代码语言:javascript
复制
$title = $_POST["title"];
$description = $_POST["description"];
$categoryId = $_POST["category_id"];
$collegeId = $_POST["college_id"];
$departmentId = $_POST["department_id"];
$uploadedBy = $_SESSION["user"];
$uploadedAt = DB::queryFirstField("SELECT NOW();");
$year = $_POST["thesis_year"];
$keywords = $_POST["keywords"];
$authors = $_POST["authors"];

//FILE UPLOAD

$targ_dir = "../uploads/";
$targ_file = $targ_dir . basename($_FILES["thesis"]["name"]);
$flagOk = 1;
$tempFolder = $_FILES["thesis"]["tmp_name"];
move_uploaded_file($tempFolder, $targ_file);

//!FILE UPLOAD

$result = DB::insert('theses', array(
    "title" => $title,
    "description" => $description,
    "categoryId" => $categoryId,
    "collegeId" => $collegeId,
    "departmentId" => $departmentId,
    "uploadedBy" => $uploadedBy,
    "uploadedAt" => $uploadedAt,
    "pubyear" => $year,
    "filepath" => $targ_file,
    "views" => 0,
    "rating" => 0,
    "keywords" => $keywords,
    "authors" => $authors
));

我试过那个print_r($_FILES),但这个不行,请帮帮我。谢谢。设置contentType:false会导致服务器对所有$_POST变量抛出错误Undefined index

EN

回答 1

Stack Overflow用户

发布于 2016-01-14 15:43:42

也许您的表单应该包含enctype="multipart/form-data"

也许这能行得通:

代码语言:javascript
复制
 $.ajax({
        type: "POST" ,
        url: "thesis-scripts/add_thesis.php",
        data: "multipart/form-data"
     ...
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34783755

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档