Heim > Backend-Entwicklung > PHP-Tutorial > 在symfony中用jquery-fileupload接收数据的问题

在symfony中用jquery-fileupload接收数据的问题

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Freigeben: 2016-06-06 20:09:33
Original
943 Leute haben es durchsucht

用的是symfony框架,用jquery上传图片,但是后台接受不到数据。代码和错误提示如下:

<code><div id="progress">
    <div class="bar" style="width: 100%"></div>
</div>
<div>
    <input id="fileupload" type="file" name="files[]" data-url="imghandle" multiple>
</div></code>
Nach dem Login kopieren
Nach dem Login kopieren
<code>$(document).ready(function(){
    $("#fileupload").fileupload({
        dataType: 'json',
        done: function (e, data) {
            $.each(data.result.files, function (index, file) {
                $('<p></p>').text(file.name).appendTo(document.body);
            });
        },
        progressall: function (e, data) {
            var progress = parseInt(data.loaded / data.total * 100, 10);
            $('#progress .bar').css(
                    'width',
                    progress + '%'
            );
        },
        done: function (e, data) {
            $.each(data.result, function (index, file) {
                $('<p></p>').text(file.name + ' uploaded').appendTo($("body"));
            });
        }
    });            
});</code>
Nach dem Login kopieren
Nach dem Login kopieren

后台代码如下:

<code>$imgPurpose = trim(stripslashes($_POST["files[]"]));</code>
Nach dem Login kopieren
Nach dem Login kopieren

错误提示如下:
Notice: Undefined index: files[]
请问这是怎么回事呢?多谢了。

回复内容:

用的是symfony框架,用jquery上传图片,但是后台接受不到数据。代码和错误提示如下:

<code><div id="progress">
    <div class="bar" style="width: 100%"></div>
</div>
<div>
    <input id="fileupload" type="file" name="files[]" data-url="imghandle" multiple>
</div></code>
Nach dem Login kopieren
Nach dem Login kopieren
<code>$(document).ready(function(){
    $("#fileupload").fileupload({
        dataType: 'json',
        done: function (e, data) {
            $.each(data.result.files, function (index, file) {
                $('<p></p>').text(file.name).appendTo(document.body);
            });
        },
        progressall: function (e, data) {
            var progress = parseInt(data.loaded / data.total * 100, 10);
            $('#progress .bar').css(
                    'width',
                    progress + '%'
            );
        },
        done: function (e, data) {
            $.each(data.result, function (index, file) {
                $('<p></p>').text(file.name + ' uploaded').appendTo($("body"));
            });
        }
    });            
});</code>
Nach dem Login kopieren
Nach dem Login kopieren

后台代码如下:

<code>$imgPurpose = trim(stripslashes($_POST["files[]"]));</code>
Nach dem Login kopieren
Nach dem Login kopieren

错误提示如下:
Notice: Undefined index: files[]
请问这是怎么回事呢?多谢了。

简单回答你的问题如下:

前提:没用过该jQuery插件,因此只考虑后台代码

第一、在表单控件的name属性值是数组的情况下(末尾加[]),在用PHP获取该控件提交的内容时,应该省略[],因此你的代码应该像下边这样:

<code>$_POST["files"]);</code>
Nach dem Login kopieren

第二、你使用$_POST全局变量访问files,得到的结果是一个PHP数组,因此,不能直接使用字符串函数进行处理(这里暂不讨论此处的字符串函数)

第三、你使用的是Symfony框架,不应该直接访问$_POST以及其他全局变量!SymfonyHttpFoundation组件已经把这些全局变量抽象为OOP接口了,应该使用Symfony提供的接口。像下边这样:(假设你的控制器方法如下)

<code>//...

use Symfony\Component\HttpFoundation\Request;

// ...

public function uploadAction(Request $request)
{
    $imgPurpose = $request->get('files');
}

// ...</code>
Nach dem Login kopieren

最后,SymfonyHttpFoundation组件功能很强大,以下是其官方文档的一些相关链接,如果阅读一遍,会对你使用Symfony框架有很大帮助。

  1. Symfony与Http基础

  2. HttpFoundation组件文档

备注:和Symfony相关的问题,请加上Symfony的标签,这样对Symfony问题感兴趣的答案作者会更容易看到。(输入内容会自动弹出提示,如下图)
在symfony中用jquery-fileupload接收数据的问题

Verwandte Etiketten:
php
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Aktuelle Ausgaben
PHP-Datenerfassung?
Aus 1970-01-01 08:00:00
0
0
0
PHP-Erweiterung intl
Aus 1970-01-01 08:00:00
0
0
0
Wie man PHP gut lernt
Aus 1970-01-01 08:00:00
0
0
0
Mehrere PHP-Versionen
Aus 1970-01-01 08:00:00
0
0
0
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage