Zend framework 使用Zend Framework 2将证书文件上载到web服务

Zend framework 使用Zend Framework 2将证书文件上载到web服务,zend-framework,file-upload,Zend Framework,File Upload,我需要发送一个包含名称和.pem证书的表单,并将它们上传到web服务,以便正确地保存在MySQL中。我在谷歌上搜索了一下,找到了一些关于如何将文件内容保存到给定本地路径的示例 我有我的表格: namespace Application\Form; use Zend\Form\Form; class CertificadoForm extends Form { public function __construct($name = null) { parent::__construct

我需要发送一个包含名称和.pem证书的表单,并将它们上传到web服务,以便正确地保存在MySQL中。我在谷歌上搜索了一下,找到了一些关于如何将文件内容保存到给定本地路径的示例

我有我的表格:

namespace Application\Form;

use Zend\Form\Form;

class CertificadoForm extends Form
{
public function __construct($name = null)
{
    parent::__construct('Certificado');
    $this->setAttribute('method', 'post');
    $this->setAttribute('enctype','multipart/form-data');
    $this->setAttribute('id', 'fileuploadform');
    $this->setAttribute('name', 'fileuploadform');

    $this->add(array(
        'name' => 'nome',
        'attributes' => array(
            'type'  => 'text',
        ),
        'options' => array(
            'label' => 'Nome do Certificado',
        ),
    ));

    $this->add(array(
        'name' => 'arquivo_certificado',
        'attributes' => array(
            'type'  => 'file',
        ),
        'options' => array(
            'label' => 'Upload Certificado',
        ),
    )); 


    $this->add(array(
        'name' => 'submit',
        'attributes' => array(
            'type'  => 'submit',
            'value' => 'Upload'
        ),
    )); 
  }
}
如果我尝试使用以下方式获取表单的内容:

$File = $this->params()->fromFiles('arquivo_certificado');
然后,我有一个具有以下内容的数组:

array(5) { ["name"]=> string(9) "teste.pem" ["type"]=> string(26) "application/x-x509-ca-cert" ["tmp_name"]=> string(14) "/tmp/phpWUs3xQ" ["error"]=> int(0) ["size"]=> int(2423) } 
如果我查看Firebug的Net选项卡,我在POST请求中有:

Parts multipart/form-data
nome    
gvbds
arquivo_certificado 
-----BEGIN CERTIFICATE-----
MIIG0TCCBLmgAwIBAgIIEQIWBARyX8gwDQYJKoZIhvcNAQELBQAwgYAxCzAJBgNV
BAYTAkJSMRMwEQYDVQQKEwpJQ1AtQnJhc2lsMRkwFwYDVQQLExBBQyBSQUlaIHRl
c3RlIHYyMRswGQYDVQQLExJBQyBTT0xVVEkgdGVzdGUgdjIxJDAiBgNVBAMTG0FD
IFNPTFVUSSBNdWx0aXBsYSB0ZXN0ZSB2MjAeFw0xNjA0MDQyMTMyNTlaFw0xNzA0
MDQyMTMyNTlaMIGVMQswCQYDVQQGEwJCUjETMBEGA1UEChMKSUNQLUJyYXNpbDEa
MBgGA1UECxMRQ2VydGlmaWNhZG8gUEYgQTExGzAZBgNVBAsTEkFDIFNPTFVUSSBN
dWx0aXBsYTESMBAGA1UECxMJQUMgU09MVVRJMSQwIgYDVQQDExtURVNURSBVUFBF
UkNBU0U6MDEyMzQ1Njc4OTAwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB
AQCPR/nVbbwzYLc3mMwSdtL6fSZt4XU1IODxw/OSOAmagAGc1E9JazirOgRDkXcw
sG9OcVHU7q0mQO2e52ZQ555jwGZy3gqYA432nGZJ6Caqf5WQihb5DN7cyrV3oUqr
j41hYrU1lkB+cNUApPEOPxG8YZ89/8rXM9Khq03Gtkn2aQ7JozXSwhspB/c/xbps
I5nfrLJ55s8JBcI8Nxcsu5fkkRnsZ8bgkluR4UeiKi3wMOA99G6bQcHKIqL7dVcA
t0SLe/C58MjpcDzS4+Quj7/RlRTaOg/45bhwhGDeUFnSQtQ1HgogZ60cSgsV5zly
iC7z4N6S6FLJuvdYwvKG5v2dAgMBAAGjggI2MIICMjBeBggrBgEFBQcBAQRSMFAw
TgYIKwYBBQUHMAKGQmh0dHA6Ly9jY2QyLmFjc29sdXRpLmNvbS5ici90ZXN0ZXMv
YWMtc29sdXRpLW11bHRpcGxhLXRlc3RlLXYyLnA3YjAdBgNVHQ4EFgQU5C/zRpdu
DbqXEDO/4knJLCoKc+kwCQYDVR0TBAIwADAfBgNVHSMEGDAWgBQ7ViAY7AItBqW0
bSyIet41eT1IcjBeBgNVHSAEVzBVMFMGBmBMAQIBJjBJMEcGCCsGAQUFBwIBFjto
dHRwczovL2NjZC5hY3NvbHV0aS5jb20uYnIvZG9jcy9kcGMtYWMtc29sdXRpLW11
bHRpcGxhLnBkZjBTBgNVHR8ETDBKMEigRqBEhkJodHRwOi8vY2NkMi5hY3NvbHV0
aS5jb20uYnIvdGVzdGVzL2FjLXNvbHV0aS1tdWx0aXBsYS10ZXN0ZS12Mi5jcmww
DgYDVR0PAQH/BAQDAgXgMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDBDCB
oAYDVR0RBIGYMIGVgSBndWlsaGVybWUuYWx2ZXNAc29sdXRpbmV0LmNvbS5icqA4
BgVgTAEDAaAvEy0wODAxMTk4NzAxMjM0NTY3ODkwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDCgFwYFYEwBAwagDhMMMDAwMDAwMDAwMDAwoB4GBWBMAQMFoBUTEzAw
MDAwMDAwMDAwMDAwMDAwMDAwDQYJKoZIhvcNAQELBQADggIBAEqAldZzZpblzDfo
biAZb+F31p02E2+sqP1Rba3hcX1e1brgJG/PMVFNMX2oJ9i/bYYZ5pK7XC7nLvxC
Wr+DE8nFw26J5g8VRTNb8u1oZT0g+/ukAv2mH6bnO0NV2MzM6WVyYxftiSKoy+4D
hoz3bL1rvWqDo8/AEigDeCp+OSOeN90fLeoHt2zPmrGtiv3i6TA8sQu3Q0wQXh57
zq+q0gL9w8AFWl75QWe+8r8BQBVefXtFwjArK3KZiy+C51ny+wzkR55YBOoUOa7Y
LoXa7857vGvBuG9X7F7v5hjQiAxO9S3I5zkOxFByWIog5rv9QueO6NRmm1xeGmZb
2QHU3EXknrbv+LBQLEVRUf+0Pxlx06DDYayVNh/iR4Z2a1L1TjcSmVZhk8NCxlmb
jAyR6F2docVS6ubvCYaaRg2Iho0df5edJmC1ukCTKkl0RT5sz7HhB9ZY5hxzFag5
mTt0SgdZoB9QTjT31T8uVPAPOJgGhPRB/vI0BYNz6NTpQB/B9YLzzpMVUUXA0WxE
N4wT9hLuvAn9++CBhMzx+482bwHVIuSGLTY5Wj+MEY1CiIssAD5ZNCPLKNsJeHYe
BWwDABbMHxZ5HdlZvEObbOFk/rE6wEj+XUBb6hWegMPjzqnhiyhzM7YElpvGf7/S
eW3/swrswzRlgEAQIYTM3tNC1Mgy
-----END CERTIFICATE-----
submit  
Upload
Source

-----------------------------156731466519572815661505124064
Content-Disposition: form-data; name="nome"

gvbds
-----------------------------156731466519572815661505124064
Content-Disposition: form-data;              name="arquivo_certificado";                         filename="teste.pem"
    Content-Type: application/x-x509-ca-cert

    -----BEGIN CERTIFICATE-----
    MIIG0TCCBLmgAwIBAgIIEQIWBARyX8gwDQYJKoZIhvcNAQELBQAwgYAxCzAJBgNV
    BAYTAkJSMRMwEQYDVQQKEwpJQ1AtQnJhc2lsMRkwFwYDVQQLExBBQyBSQUlaIHRl
    c3RlIHYyMRswGQYDVQQLExJBQyBTT0xVVEkgdGVzdGUgdjIxJDAiBgNVBAMTG0FD
    IFNPTFVUSSBNdWx0aXBsYSB0ZXN0ZSB2MjAeFw0xNjA0MDQyMTMyNTlaFw0xNzA0
    MDQyMTMyNTlaMIGVMQswCQYDVQQGEwJCUjETMBEGA1UEChMKSUNQLUJyYXNpbDEa
    MBgGA1UECxMRQ2VydGlmaWNhZG8gUEYgQTExGzAZBgNVBAsTEkFDIFNPTFVUSSBN
    dWx0aXBsYTESMBAGA1UECxMJQUMgU09MVVRJMSQwIgYDVQQDExtURVNURSBVUFBF
    UkNBU0U6MDEyMzQ1Njc4OTAwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB
    AQCPR/nVbbwzYLc3mMwSdtL6fSZt4XU1IODxw/OSOAmagAGc1E9JazirOgRDkXcw
    sG9OcVHU7q0mQO2e52ZQ555jwGZy3gqYA432nGZJ6Caqf5WQihb5DN7cyrV3oUqr
    j41hYrU1lkB+cNUApPEOPxG8YZ89/8rXM9Khq03Gtkn2aQ7JozXSwhspB/c/xbps
    I5nfrLJ55s8JBcI8Nxcsu5fkkRnsZ8bgkluR4UeiKi3wMOA99G6bQcHKIqL7dVcA
    t0SLe/C58MjpcDzS4+Quj7/RlRTaOg/45bhwhGDeUFnSQtQ1HgogZ60cSgsV5zly
    iC7z4N6S6FLJuvdYwvKG5v2dAgMBAAGjggI2MIICMjBeBggrBgEFBQcBAQRSMFAw
    TgYIKwYBBQUHMAKGQmh0dHA6Ly9jY2QyLmFjc29sdXRpLmNvbS5ici90ZXN0ZXMv
    YWMtc29sdXRpLW11bHRpcGxhLXRlc3RlLXYyLnA3YjAdBgNVHQ4EFgQU5C/zRpdu
    DbqXEDO/4knJLCoKc+kwCQYDVR0TBAIwADAfBgNVHSMEGDAWgBQ7ViAY7AItBqW0
    bSyIet41eT1IcjBeBgNVHSAEVzBVMFMGBmBMAQIBJjBJMEcGCCsGAQUFBwIBFjto
    dHRwczovL2NjZC5hY3NvbHV0aS5jb20uYnIvZG9jcy9kcGMtYWMtc29sdXRpLW11
    bHRpcGxhLnBkZjBTBgNVHR8ETDBKMEigRqBEhkJodHRwOi8vY2NkMi5hY3NvbHV0
    aS5jb20uYnIvdGVzdGVzL2FjLXNvbHV0aS1tdWx0aXBsYS10ZXN0ZS12Mi5jcmww
    DgYDVR0PAQH/BAQDAgXgMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDBDCB
    oAYDVR0RBIGYMIGVgSBndWlsaGVybWUuYWx2ZXNAc29sdXRpbmV0LmNvbS5icqA4
    BgVgTAEDAaAvEy0wODAxMTk4NzAxMjM0NTY3ODkwMDAwMDAwMDAwMDAwMDAwMDAw
    MDAwMDAwMDCgFwYFYEwBAwagDhMMMDAwMDAwMDAwMDAwoB4GBWBMAQMFoBUTEzAw
    MDAwMDAwMDAwMDAwMDAwMDAwDQYJKoZIhvcNAQELBQADggIBAEqAldZzZpblzDfo
    biAZb+F31p02E2+sqP1Rba3hcX1e1brgJG/PMVFNMX2oJ9i/bYYZ5pK7XC7nLvxC
    Wr+DE8nFw26J5g8VRTNb8u1oZT0g+/ukAv2mH6bnO0NV2MzM6WVyYxftiSKoy+4D
    hoz3bL1rvWqDo8/AEigDeCp+OSOeN90fLeoHt2zPmrGtiv3i6TA8sQu3Q0wQXh57
    zq+q0gL9w8AFWl75QWe+8r8BQBVefXtFwjArK3KZiy+C51ny+wzkR55YBOoUOa7Y
    LoXa7857vGvBuG9X7F7v5hjQiAxO9S3I5zkOxFByWIog5rv9QueO6NRmm1xeGmZb
    2QHU3EXknrbv+LBQLEVRUf+0Pxlx06DDYayVNh/iR4Z2a1L1TjcSmVZhk8NCxlmb
    jAyR6F2docVS6ubvCYaaRg2Iho0df5edJmC1ukCTKkl0RT5sz7HhB9ZY5hxzFag5
    mTt0SgdZoB9QTjT31T8uVPAPOJgGhPRB/vI0BYNz6NTpQB/B9YLzzpMVUUXA0WxE
    N4wT9hLuvAn9++CBhMzx+482bwHVIuSGLTY5Wj+MEY1CiIssAD5ZNCPLKNsJeHYe
    BWwDABbMHxZ5HdlZvEObbOFk/rE6wEj+XUBb6hWegMPjzqnhiyhzM7YElpvGf7/S
    eW3/swrswzRlgEAQIYTM3tNC1Mgy
    -----END CERTIFICATE-----

    -----------------------------156731466519572815661505124064
    Content-Disposition: form-data; name="submit"

    Upload
    -----------------------------156731466519572815661505124064--
这个散列可以满足我的需要,但是我找不到一种方法将它放入我的控制器中。我只是得到了保存文件的临时空间的信息。我可以试着得到这个哈希吗?或者如何将二进制文件上载到web服务