如何在php中发布隐藏在表单中的整个对象

时间:2017-05-08 16:22:39

标签: php forms file object hidden

我有一个对象,它是一个原始文件,我想以一个帖子形式发送这个对象。

当我尝试这个时:

{{ Form::open(array('url' => 'mgmtUser/upload_img_crop/', 'method' => 'POST', 'files' => true)); }}
    <input hidden type="file" name="file" value="<?php $file; ?>">
    <?= Form::hidden('x', '', array('id' => 'x')) ?>
    <?= Form::hidden('y', '', array('id' => 'y')) ?>
    <?= Form::hidden('w', '', array('id' => 'w')) ?>
    <?= Form::hidden('h', '', array('id' => 'h')) ?>
    <?= Form::submit('Crop it!') ?>
    <?= Form::close() ?>

发布结果仅为: [ “文件”] =&GT; NULL

为什么以及如何获取所有对象,我应该编码,序列化......? 我在laravel 4。 $ file是:

  

object(Symfony \ Component \ HttpFoundation \ File \ UploadedFile)#9(7){   [ “测试”: “的Symfony \元器件\ HttpFoundation \文件\ UploadedFile的”:私人] =&GT;   布尔(假)   [ “ORIGINALNAME”: “的Symfony \元器件\ HttpFoundation \文件\ UploadedFile的”:私人] =&GT;   string(11)“3bb13ad.jpg”   [ “mime类型”: “的Symfony \元器件\ HttpFoundation \文件\ UploadedFile的”:私人] =&GT;   string(10)“image / jpeg”   [ “尺寸”: “的Symfony \元器件\ HttpFoundation \文件\ UploadedFile的”:私人] =&GT;   INT(8017)   [ “错误”: “的Symfony \元器件\ HttpFoundation \文件\ UploadedFile的”:私人] =&GT;   int(0)[“pathName”:“SplFileInfo”:private] =&gt;串(14)   “/ tmp / phpVGS9Cu”[“fileName”:“SplFileInfo”:private] =&gt;串(9)   “phpVGS9Cu”}

1 个答案:

答案 0 :(得分:1)

如果您确实尝试通过表单发送$file 对象,则需要将其序列化为某种文件格式(例如,写入.txt文件)然后通过输入上传。

看起来$file对象包含与您可能尝试上传的文件相关的属性,而不是实际的PHP文件句柄对象。如果是这种情况,您只需更改以下行

即可
<input hidden type="file" name="file" value="<?php $file; ?>">

<input hidden type="file" name="file" value="<?php $file.originalName; ?>">

修改

如果您需要在表单提交后使用文件句柄,请尝试以下操作:

<input hidden type="file" name="file" value="<?php echo json_encode($file) ?>">

然后当您在接收端时,请使用

$file = json_decode($_POST['file']); 

访问Object。