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

    评论

报告相同问题?

悬赏问题

  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog