Zend framework 使用Zend Framework 2将证书文件上载到web服务
我需要发送一个包含名称和.pem证书的表单,并将它们上传到web服务,以便正确地保存在MySQL中。我在谷歌上搜索了一下,找到了一些关于如何将文件内容保存到给定本地路径的示例 我有我的表格: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
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服务