【问题标题】:Laravel 4 Can't route ouput from jQuery to ControllerLaravel 4无法将输出从jQuery路由到控制器
【发布时间】:2014-12-07 06:20:53
【问题描述】:

这是一个 Laravel 4 图像处理项目。 我正在兜圈子试图解决这个难题,我相信它有一个基本的解决方案。 用户选择一些图片,预览它们,然后点击上传。

问题在于,handleForm 的输出(FormData 对象)没有路由到 ImageController 以进行其余的图像处理。单击时没有任何反应。调试显示 FormData 对象(xhr.send(data) 中的数据)包含用户指定的图像。

相关位:1 用户点击上传。

<input type="button" value="Upload" id="go"/>
  1. 在jQuery中.click事件启动handleForm函数:

$("#go").on("click", handleForm); 
  1. 在 handleForm 中,storedFiles 数组包含用户在预览后选择的图像。

function handleForm(e) {
        e.preventDefault();
        var data = new FormData();
        
        
        for(var i=0, len=storedFiles.length; i<len; i++) {
            data.append('files', storedFiles[i]);             
        }
        
        var xhr = new XMLHttpRequest();
        xhr.open('POST', 'upload', true);
        
        xhr.onload = function(e) {
            if(this.status == 200) {
                console.log(e.currentTarget.responseText);  
                alert(e.currentTarget.responseText);
            }
        }
        xhr.send(data);
    }
  1. 在路线中

Route::post('upload', array(
    'as' => 'upload',
    'uses' => 'ImageController@upload'
    
    ));
  1. 在 ImageController 中:

<?php

    class ImageController extends BaseController {

    public function upload(){   
        
        $files = Input::all('files');

        $gallery =  str_random(12);
           

        foreach ($files as $file) {

            $validation = Image::validateImage(array('file'=> $file));

            ...................

这是我第一次尝试在 Laravel 中加入 jQuery,我需要一些帮助!

【问题讨论】:

  • 我可以知道您的控制台的输出...我的意思是 AJAX 报告...
  • xhr.send(data);控制台.log(数据,“数据”);在 Chrome 控制台中生成 FormData“数据”

标签: php jquery


【解决方案1】:

在这种情况下,答案是更改 jQuery 以将文件转换为数组 files[],例如:

for(var i=0, len=storedFiles.length; i<len; i++) {
            data.append('files[]', storedFiles[i]);             
        }

尽管搜索了数小时,但我仍无法在任何地方找到此解决方案,这只是一种试错法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-12-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-21
    • 2013-10-05
    相关资源
    最近更新 更多