Храните изображение без хранилища больших двоичных объектов в Azure

#php #azure-web-app-service #azure-sql-database

Вопрос:

У меня есть серверная система, которая использовалась для сериализации образа как base64 в базе данных Azure. Используя PHP, я не хочу использовать хранилище больших двоичных объектов. Я читаю загруженный файл, $_FILES['imgFile']['tmp_name'] когда запускаю его, говорю, что tmp_path в изображении не найден. Ни одна другая ошибка, указанная даже в ini_set('display_errors', 1); том случае, если кто-либо успешно выполнил ее в Azure?

 <?php
ini_set('display_errors', 1);


function endsWith( $haystack, $needle ) {
    $length = strlen( $needle );
    if( !$length ) {
        return true;
    }
    return substr( $haystack, -$length ) === $needle;
}

$conn = require_once 'connect.php';

if (isset($_FILES['imgFile'])) 
{
    $dt = date("Y-m-d H:i:s");
    
    
    if(endsWith(strtolower($_FILES['imgFile']['name']), ".jpg") || $_FILES['imgFile']['type'] === "image/jpeg" || $_FILES['imgFile']['type'] === "image/jpg")
    {
        //echo($_FILES['imgFile']['tmp_name']);
        if(!empty($_FILES['imgFile']['tmp_name']) amp;amp; file_exists($_FILES['imgFile']['tmp_name'])) {
        $base64ImgData = base64_encode(file_get_contents(addslashes($_FILES['imgFile']['tmp_name'])));
        echo $base64ImgData;
        $tsql = 'INSERT INTO ImgStore(ImgDateStamp, ImgTimeStamp, ImgData) VALUES(?, ?, ?)';
        $params = array($dt, $dt, $base64ImgData);
        $stmt = sqlsrv_query( $conn, $tsql, $params);

        unlink($_FILES['imgFile']['tmp_name']);
        
        echo 'Added image';
    }
    else
    {
        echo 'File is not a JPG';
    }

}
else
{
?>
<!-- The data encoding type, enctype, MUST be specified as below -->
<form enctype="multipart/form-data" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>" method="POST">
    <!-- MAX_FILE_SIZE must precede the file input field -->
    <input type="hidden" name="MAX_FILE_SIZE" value="30000" />
    <!-- Name of input element determines name in $_FILES array -->
    Send this file: <input name="imgFile" type="file" />
    <input type="submit" value="Send File" />
</form>
<?    
            
}


?>
 

Комментарии:

1. не могли бы вы, пожалуйста, поделиться полным сообщением об ошибке для лучшего понимания?

2. Сообщение об ошибке не говорит ничего, кроме ошибки 500 и путь не найден

3. не можете ли вы переопределить upload_tmp_dir в каком-нибудь месте памяти ?