duai4512 2017-09-25 04:43
浏览 197

将图像从Android上传到MySQL数据库

PHP code

Is anything is wrong in this php code?

 <?php
    require '../db_connect.php';
    if (isset($_POST['message']) && !empty($_POST['message']) or isset($_POST['img_file']) && !empty($_POST['img_file']) or isset($_POST['video_file']) && !empty($_POST['video_file']))
    {
        $message=$_POST['message'];
        $user_id=$_POST['user_id'];
        //$user_id=1;
        date_default_timezone_set('Asia/Kolkata');
        $date = date('Y-m-d H:i:s');

        $query=mysqli_query($con,"INSERT INTO posts(user_id,post_description,is_active,created_at) values('".$user_id."','".$message."',1,'".$date."')");

        if($query){
             $i_post_id = mysqli_insert_id($con);
             if(isset($_POST['img_file'])){
                 $sourcePath = $_POST['img_file'];
                 // create dir if not exists
                if(!is_dir('../img/Post')){
                     mkdir('../img/Post',0777,true);
                }
                $s_file_name = time()."_".$_POST['img_file'];
                $targetPath = "../img/Post/".$s_file_name;
                if(move_uploaded_file($sourcePath,$targetPath)) {
                    function compress($source, $destination, $quality) {
                        $info = getimagesize($source);
                        if ($info['mime'] == 'image/jpeg') 
                            $image = imagecreatefromjpeg($source);
                        elseif ($info['mime'] == 'image/gif') 
                            $image = imagecreatefromgif($source);
                        elseif ($info['mime'] == 'image/png') 
                            $image = imagecreatefrompng($source);

                        imagejpeg($image, $destination, $quality);
                        return $destination;
                    }
                    $source_img = $targetPath;

                    if(!is_dir('../img/Post/compress')){
                        mkdir('../img/Post/compress');
                    }
                    $destination_img = '../img/Post/compress/'.$s_file_name;

                    $d = compress($source_img, $destination_img, 50);

                    $i_file_type = 1; // 1 for image.
                    $query=mysqli_query($con,"INSERT INTO post_files(post_id,file_name,file_type,is_active) values('".$i_post_id."','".$s_file_name."',$i_file_type,1)");

                }
            }
            if(isset($_POST['video_file'])){
                    //echo "in";
                $sourcePath = $_POST['video_file'];
                 // create dir if not exists
                if(!is_dir('../img/Post')){
                     mkdir('../img/Post',0777,true);
                }

                $s_file_name = time()."_".pathinfo($_POST['video_file'], PATHINFO_FILENAME).".mp4";
                $s_file_name = str_replace(' ', '_', $s_file_name);
                $targetPath = "../img/Post/convert/".$s_file_name; 
                 if(!is_dir('../img/Post/convert')){
                     mkdir('../img/Post/convert',0777,true);
                 }
                $s_post_path = dirname(__FILE__).'/';

                 $handbrake = "HandBrake/HandBrakeCLI";
                 $cmd = $s_post_path.$handbrake." -i ".$sourcePath." -o ".$s_post_path.$targetPath." -e x264 -q 25 -r 15 -B 64 -X 480 -O";
                    passthru($cmd,$err);

                        $i_file_type = 2; // 2 for video.
                        $query=mysqli_query($con,"INSERT INTO post_files(post_id,file_name,file_type,is_active) values('".$i_post_id."','".$s_file_name."',$i_file_type,1)");
            }
            $response["success"] = 1;
            $response["message"] = "Post successfully added.";

            // echoing JSON response
            echo json_encode($response);
        }
        else{
            $response["success"] = 0;
            $response["message"] = "Oops! An error occurred.";

            // echoing JSON response
            echo json_encode($response);
        }
    }
    ?>

When I am uploading image to Mysql Database its not uploading and showing me image as a string in LOG for example =

    img_file = /9j/
4 AAQSkZJRgABAQAAAQABAAD / 2 wBDABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkz
ODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2P / 2 wBDARESEhgVGC8aGi9jQjhCY2NjY2Nj
Y2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2P / wAARCBBACSQDASIA
AhEBAxEB / 8 QAGwABAQEBAQEBAQAAAAAAAAAAAQACBwYFBAP / xABKEAACAgIBAwMDAQUEBgkDAAsA
AREhMUECA1FhBAVxBhKBkQc1cqGxEyIyNBQVFjNCUiM2U1RVYnOSwRclgiTR4fBDRPFjRSaD / 8 QA
FgEBAQEAAAAAAAAAAAAAAAAAAAEC / 8 QAFxEBAQEBAAAAAAAAAAAAAAAAAAERQf / aAAwDAQACEQMR
AD8A8KSAQ2SJQwl4kKkIDoBRP + YJzsANESJ6AGwFuydBEoUypJFoAGPIOhTJhGS4uHOSFAUkxaoy
FQpUSyKj5AGoImKrIQNUCN8nWDAUr5KARqHEgDKARtpAZRpA4yimwEzAvlsJAYrJkQgK0UmbEI0n
CJw1INMgozZaGQCFDNGfgtWBCncfzDRQ9AacSD8otWEgX4FKVbKu5UBlijX2zaKKkDM + BmhwZeAA
skiQCObQRQzoCkHdiAEi2SkvufgCFcmgIBaWUBFYQ9yXYCASqSTL5CjANi2AQosgkIAQGkpCpRcg
LUEkArFghgoAk7RN33JgBrko2ZGXEGQJGo2AzLloAYCiYBJFBAOhULILGS1kCIcAgADTUujIChXk
BAmSZABrjyFxEyYNPAU / kzspKQifJom0ElMWBJjYNtsUBFBovIA + weB2DcvADgDWUDQAUeSspryB
CoMjkCblisGZIBFKwSbcI0lDsAecByiDTdhyYVg1RQgCEHkiCJCBICFFWNkAtwoyZZCAEUdyAmSR
CAFUGknEmQIVACgLkgNOzLCqSAUpQFAvjAvwWVYGSNYLAAREqAimx5OTIGn4Ak2hmwIGTGmooDIG
l5BqwIoEtAEUQsgicaJQTBIBQyZJhTJNgWwGSGIZOvkDI6AQGKMipIBwv6gKVTIOgIs6IpgCLkoy
VSTsICKCXYCGSQutWBlMQYAbbWjJEBQLkgACIUgJG0jIgDBpp2jSyDlu2BEOF8hoAFXsikBVASNO
I / AOMwOME6GG6SCsyT5N5JloAkiICEkotloDStBkuJAGyVDBPEAQFaKAIiggLQ6gLyKfcCZmLNNz
oGghVZQNogAhkCA0n3Ll3MspYCvktkKCp9gTs0ZAiIFkBstEMaoDItt3BNFbAkL5S8AIFIMtyacN
YAOKHnGpBNwMwFFg0bT8GXC0EGkggZ0UqZAoayREAoi0KAKFudQH9SbQEThLyTa0ZAUOUCJAaqCg
AYE / CK0EspkBvZDqAYCrJ5DBrYBDMs0wdAREh5SqgDIkDAhQCArIEKAJKSYAMIoJEnAAyEoABKoI
CBi8wQAaTiPAIVkCJqi2TwBkjULsQAsSTlgaUACoU5yUFIVMJIgJFEMhXKoCLi7Lk5eSifgnmsBU
sgOBQRkDSiHP4Cu4FaJW4FpQSnIA1BI1oHgB5TCsybMvuAERAQrALIgJl5FpwULYAy8DU5FhQkmK
LJLABlwDNQobMgAoi / AQwAlhhU4wRBhgbcQg1kyapbCMkMEuKeaAqSAXQSFQqUArIE / INWOgkIQG
fwSgAlxBpYKJvIOmAtyoMCQAQwWoAUUIkSyBOICC2LaSgAQMnkgFDA6hBPcCBeSltkwhhFQYKQKB
kELgAiVRJTSHXgpi0oYUrg0ZZr7wfKVEACpikDHj4AmnsE40bcPJnAUtlJmCSCHLLBYwKlhQJRYM
A2MAQQpwS / mAsCV5B5JMgAZLVEBSL7xAbsW00AAacQS7gSS2UXJNggGaMsSYAhwSXkWAFEkhbAzB
M070AAOCSkewA2Vk2QEKYQMWA5BsZYAGgNRTBAUFDH8isAZbbyRC1H5AuPJ8H / doW3y8GUxlhQwZ
Mgh4i4MmsoAgnAgAEJQBEyJqwiLRRRAAqgwKAsilLgJKQNNNIyKbWzLAdlEEsE3IDsg2QUuIBYJ0
Ega8i3IeJG / wAMGTXkmArAEvIgAGnRkB0SjsC8kAsTIqwKN6Ik / yTAhxZmSQRr4DRCpABKmieAB5
BIRgKEg2JNUgIJkmCAdkQugJdyvJCwGXBkpJNSBSTIgidALZMCSmkDQqCoCQzVknASBRRRLNNvko
M0gJoDVgBIiDAFuigVaICyKBD5AUzP5IgFudAWikCIB4gAy4Jg5AZKfJkUAtkoIUlEz8gAQLJYCp
txYoMkgNAWQYVpBEAmLCJw15IJogF1WQJ5kgKWAuNKAAULUMnIQwiIoKLAPkm6gWAAxWCgVEWgqQ
pMEUgNTYNyWygAFdyFu6AnaMi8AAkS8kAsCGgA1GgwCewrSdWDZNzoEArk0mpyFkKCBokLwTdJAG
TUwoB0zTwFZGoJPuglhATvA5KAMiTICUZInZLICTTXGZIHgAYoHk0sZAIZCom2TsCcwiwXiS + GAN
sBb7lryBE33KHA4AkTCRykgAkhrQALJqgmR0AEiZSAlQfkQJA4EAJgLVIlGwJUxQEAk2UgBIcgQC
yCCABIkBClRSSAkm3RclDaagnkHLcsAFEhQEgFB5CmfBTNE35AIiiispcgQ / kPucWWgF5hYIEMgQ
zQN2ACApikshWSRomgjKmRipAfAAs2RNEFIxVAikBSJiryDAKBjoJApEyaCFQnLMvJqgCjyXyMEg
hRS8Fl0DphUzIyUBFT0aa2ZSNKeThNIDLyTGgACTsX8FHYBTcFsEKkKn8Asi8gEIOUxIAsq0KgPw
BEKWCiwBJCkiqRkAcaMyPJVJkDUjAJFV2ESYtrSAkBZLXYSfaaAOLgXEVkyyQEJQWAq0PFNgaxnI
BNk8lbJ58hQxRbNPsAPwGUWCTAiyUtsUED41MhRppO0ZdASJsk4B2BGktmUaAp8BEGl9u0DbdaAo
KCHAUEXmS0EGxUgh0BNvZlmn2MtMCGQFAOQFOgbkCWShgL7APFwxbnCgEqEAXFsDUqDLyEScMZM5
YhTOgKgAVbF + BTLDoAgkTZSFLMti / ARYQCsAKbAmA7sgJoVGTMjLAW5eARXHyCA1uiRTRbkAIQYF
YvApSgi4ACGpoICIoCxlgQC5my / qBETICFAmMhRyJKxommAYZpGUIE / ATGhyxgAmAQsFkCYGqDAD
xgnBVHkFPYBhAQqGAbBjNgBKNjSDRBDJAhCoZonEUACsTstAqodAGinwLoAJoBaKAKCIAEmRZoAA
WqKAK0RMghSlgScCgJEhcFWAoZMnkywjUyUWCY5ArJOGOjLAW13AUTYAMSgNVoKIsvA5ABThRCAH
kUgFPuZZoG0wgQoNClsCdkQ0AQQuOwbAlkX3ApAnZPwTZIKGKkhSoDLkjW7KFKuQBAhcLY8YAo2B
pwWQrOEBpwidOAjIoDVBFLagJgUEBUQpKLBgVCu5mRQQtrtYPA0tFlBWTWggVkBSA1xmycRIGSLZ
ADjsSFkkFDsoYuOxaCBEOES8gBEX5AtizJqaAHgeOCDACy0TckgLwSYMFmgNyk7CtAxXkBRcv5Ah
8 ADUAabSV2zACUkQERIpANihSB5AkKhqEZIBmGUgXwAwyFRcgwKWnKFOVEmRAiUkQFgpJpxNA + wC
P3OIMo1AAUrsTKJAiRGkpU0BnZMSfeALKMiieQJMiXcWADAQKAGigWH3SrAiNKIsgAmoFAADGxcR
RKgoafYPBqYB0ESSdFyqiAKkJImAMkPGHknE0EBQQptAUEyVuxdVMgZIWQFBFMA2A0UgQFIyCICG
aAkFTEvgpqAJWLhpGZKwEieClATgCIIkKsIEAotWQgUptE92Tj4BOwNKkDKYVBIE

How can I upload an image from this php file? What is wrong in this php file?

  • 写回答

2条回答 默认 最新

  • doutun1875 2017-09-25 05:14
    关注

    I recommend converting image to Base64 string before sending and then converting it back to image at back-end using PHP code. You can use following code to convert image into Base64:

    public void toStringImage(Bitmap bmp) {
            ByteArrayOutputStream baos = new ByteArrayOutputStream();
            bmp.compress(Bitmap.CompressFormat.JPEG, 100, baos);
            byte[] imageBytes = baos.toByteArray();
            String encodedImage = Base64.encodeToString(imageBytes, Base64.DEFAULT);
    }
    

    Send encodedImage string to your PHP web-services using your preferred library (I generally use Volley).

    Once you received encodedImage, use following code to convert it back to image and store it at any location on your database:

    $imageString = $_POST['encodedImage'];
    $path = "../$name.jpg";
    file_put_contents($path, base64_decode($imageString));
    

    Once stored, insert location of the image in your MySQL database so that you can use it to retrieve image.

    Edit:

    Instead of making image upload so complicated, try following PHP code:

    if(isset($_POST['img_file'])){
        $sourcePath = $_POST['img_file'];
        // create dir if not exists
        if(!is_dir('../img/Post')){
             mkdir('../img/Post',0777,true);
        }
        $date = date_create();
        $s_file_name = $user_id.date_format($date, 'U');
        $targetPath = "../img/Post/$name.jpg";
        file_put_contents($targetPath, base64_decode($sourcePath));
        $i_file_type = 1; // 1 for image.
        $query=mysqli_query($con,"INSERT INTO post_files(post_id,file_name,file_type,is_active) values('".$i_post_id."','".$s_file_name."',$i_file_type,1)");
    }
    

    Check the same code at my GitHub repo: ImagetoString

    评论

报告相同问题?

悬赏问题

  • ¥60 求一个简单的网页(标签-安全|关键词-上传)
  • ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法
  • ¥15 基于卷积神经网络的声纹识别
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图