Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Ajax Post表单-难以集成XHR2文件上载_Php_Jquery_Ajax_Upload_Xmlhttprequest - Fatal编程技术网

Php Ajax Post表单-难以集成XHR2文件上载

Php Ajax Post表单-难以集成XHR2文件上载,php,jquery,ajax,upload,xmlhttprequest,Php,Jquery,Ajax,Upload,Xmlhttprequest,我搜索了stackoverflow和google,找到了很多关于这个主题的资料,但没有一个能帮助我理解我想要实现的目标 我试图创建一个表单,它异步发送表单数据并上传单个图像,通过相同的php脚本调整大小、重命名并将其保存到指定目录 如果以传统方式发送数据,一切都会完美工作 当我试图将XHR集成到处理非文件表单数据的现有jQuery中,并将该文件与其他所有内容一起发送到PHP脚本时,我就不那么想了 我不是特别精通JS,我正处于学习状态。到目前为止,我所发现的一切都是以只上传文件的例子的形式出现的,

我搜索了stackoverflow和google,找到了很多关于这个主题的资料,但没有一个能帮助我理解我想要实现的目标

我试图创建一个表单,它异步发送表单数据并上传单个图像,通过相同的php脚本调整大小、重命名并将其保存到指定目录

如果以传统方式发送数据,一切都会完美工作

当我试图将XHR集成到处理非文件表单数据的现有jQuery中,并将该文件与其他所有内容一起发送到PHP脚本时,我就不那么想了

我不是特别精通JS,我正处于学习状态。到目前为止,我所发现的一切都是以只上传文件的例子的形式出现的,重点是上传进度、多文件上传和拖放,我对此项目不感兴趣

我不喜欢复制代码,并试图通过修改代码来使用我所写的内容,我宁愿理解如何去做

有没有人遇到过任何阅读材料/教程,这些材料/教程演示并解释了如何在标准ajax表单post中实现ajax文件上传

提前谢谢

我正在使用的代码的简化示例:

<script>

$('#editgig_form').submit(function(){

    $('#ng_loading').fadeIn(500);

    var eg_dataString = $('#editgig_form').serialize();

    $.ajax({
        type: "POST",
        url: "Resorces/Components/GigDiary/edit_gig.php",
        data: eg_dataString,
        success: function(){

        $('#giglist_canvas').load('Resorces/Components/GigDiary/refresh.php');

        $('#ng_loading').fadeOut(500);
        popupclose(edit_gig);                   
        editmenu_selected = '';
        }

    });

return false;

});

</script>   
-

-


您是否尝试在浏览器中打印发送的console.log数据或在php中打印var_dump$\文件?我知道你只是把文件的名字贴出来了

您将需要在文件上传时实现此功能,或者您可以使用jquery插件,如plupload、HTML5文件上传

这里的代码示例

显示一些代码您尝试了什么?我没有尝试实现它,因为我真的不知道从哪里开始。我将添加一个片段来说明我要做的事情。好的,然后你需要在你的ajax调用中使用这个类new XMLHttpRequest.upload通过ajax和xhr2上传它取决于浏览器,从其他方面来说,你必须用传统的方式上传。希望它有意义…谢谢,这是我得出的结论。浏览器不是问题,因为所有用户都使用Chrome。实现它是我失败的地方,因为我不确定它是如何工作的。这是否允许将文件传递到PHP?或者这个额外的javascript上传文件,然后不同的PHP必须访问保存的文件并调整其大小。还有一个问题。。。。您的传统方式是刷新页面进行保存吗?只是为了我的安全,这样我才能正确回答。
<form id="editgig_form" method="post" enctype="multipart/form-data">
    <input type="text" name="date" />
    <input type="text" name="venue" />
    <input type="file" name="image" />
</form>
<?php

date = date("Y-m-d", strtotime($_POST['date']));
venue = $_POST['venue'];

// SCRIPT TO RESIZE IMAGE, SAVE TO DIRECTORY 

$update = "UPDATE gigdairy SET date="$date", venue="$venue", image="imgname";
mysql_query($update);

?>