Web siteme bir RSA özel anahtarı (. Pem dosyası) yükleme ve içeriğini okumak için fopen ama son zamanlarda ben çok mantıklı yapmadan ve üzerinde aynı hatayı almaya devam ediyorum.
HTML
<form enctype="multipart/form-data" action="upload.php" method="post">
<input type="hidden" name="MAX_FILE_SIZE" value="1000000" />
Choose a file to upload: <input name="uploaded_file" type="file" />
<input type="submit" value="Upload" />
</form>
Upload.php
<?php
session_start();
if( $_SERVER['SERVER_PORT'] == 80) {
header('Location:https://'.$_SERVER['HTTP_HOST'].$_SERVER["REQUEST_URI"]);
die();
}
echo $_FILES['uploaded_file']['name'];
//Сheck that we have a file
if((!empty($_FILES["uploaded_file"])) && ($_FILES['uploaded_file']['error'] == 0)) {
$filename = basename($_FILES['uploaded_file']['name']);
$ext = substr($filename, strrpos($filename, '.') + 1);
if (($ext == "pem") && ($_FILES["uploaded_file"]["type"] == "text/plain")) {
$fh = fopen($_FILES['uploaded_file']['name'], 'r');
//continue with code
} else {
echo "Error: Only pem files are accepted for upload";
}
} else {
echo "Error: No file uploaded";
}
?>
Site hata dönen tutar:
Warning: fopen(mykey.pem) [function.fopen]: failed to open stream: No such file or directory in .... on line 38
(Hangi çizgi fopen edilir). Bu fopen devlete alır gerçeği aslında yüklenme yapar ama fopen bana kanıtlıyor (ayrıca file_get_contents ($ _FILES ['uploaded_file'] ['name']) kullanarak çalıştı; de başarısız) bir hata döndürür.
ne da puh!
FINAL NOTES:
Fopen Sebebi ne olursa olsun, () için OpenSSL sertifikaları okumayı severim ve bir eror verir vermez:
openssl_private_decrypt(): supplied resource is not a valid OpenSSL X.509/key resource
Eğer file_get_contents kullanmak eğer ancak çalışır.