设置图片 传送url数据

<!DOCTYPE html>
<html>

<head>
    <meta charset="UTF-8">
    <title></title>

    <style type="text/css">
        #divQRCode {
            display: inline-block;
            vertical-align: middle;
            border: none 2px blue;
            margin: auto;
        }

        #divLeft {
            margin-left:32px;
            margin-top:16px;
            border: none 2px blue;
            vertical-align: top;
        }


        #btnFlush {
            cursor: pointer;
        }

        div img {
            vertical-align: middle;
        }
    </style>
</head>

<body>
    <table>
        <tr>
            <td>
                <div id="divLeft">
                    <p> 图片样式选择</p>
                    <select id="selectImageType">
                        <optgroup label="图片格式">
                            <option value="jpg" selected="selected">jpg</option>
                            <option value="png">png</option>
                        </optgroup>
                    </select>

                    <br />

                    <p>图片大小设置</p>
                    <input type='text' id="inputScale" />
                    <br />
                    <br/>
                    <input id="btnFlush" type="button" value="刷新" />
                </div>
            </td>
            <td>
                <div id="divQRCode">
                    <img src="下载.png" id="imgQRCode" />
                </div>
            </td>
        </tr>
    </table>




</body>

</html>

<script type="text/javascript">
    var text = document.getElementById("inputScale");
    text.onkeyup = function () {
        //updateQRCode();       
        this.value = this.value.replace(/\D/g, '');
        if (text.value > 100) {
            text.value = 100;
        }
        if (text.value < 1) {
            text.value = 1;
        }

    }

    function getUrlParam(name) {
        var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
        var r = window.location.search.substr(1).match(reg);
        if (r != null) return unescape(r[2]); return null;
    }

    function extractParamFromUrl() {
        var qrcodeServer = getUrlParam("qrcodeServer");
        var callbackServer = getUrlParam("url");
        var scale = getUrlParam("scale");
        var id = getUrlParam("id");
        var action = getUrlParam("action");

        console.log("qrcodeServer = " + qrcodeServer);
        console.log("callbackServer = " + callbackServer);
        console.log("scale = " + scale);
        console.log("id = " + id);
        console.log("action = " + action);

        return {
            qrcodeServer: qrcodeServer,
            callbackServer: callbackServer,
            scale: scale,
            id: id,
            action: action
        };
    }

    var params = extractParamFromUrl();

    initPage(params);

    function initPage(params) {
        //
        var inputScale = document.getElementById("inputScale");
        inputScale.value = params.scale;

        //
        var imgQRCode = document.getElementById("imgQRCode");
        var urlQRCode = makeQRCodeURL(params.qrcodeServer, params.callbackServer, params.scale, params.id, params.action, "jpg");
        imgQRCode.setAttribute('src', urlQRCode);
    }

    function makeQRCodeURL(qrcodeServer, callbackServer, scale, id, action, imageType) {
        var url = qrcodeServer + "url=" + callbackServer + "&action=" + action + "&scale=" + scale + "&id=" + id + "&img=" + imageType;
        return url;
    }

    document.getElementById("btnFlush").addEventListener("click", updateQRCode);
    document.getElementById("inputScale").addEventListener("propertychange", updateQRCode);

    function updateQRCode() {
        //scale
        var scale = document.getElementById("inputScale").value;
        if (scale > 100 || scale < 1) {
            scale = 5;
        }

        //imageType
        var imageType = document.getElementById("selectImageType").value;

        //
        var imgQRCode = document.getElementById("imgQRCode");
        var urlQRCode = makeQRCodeURL(params.qrcodeServer, params.callbackServer, scale, params.id, params.action, imageType);
        imgQRCode.setAttribute('src', urlQRCode);
        console.log("urlQRCode = " + urlQRCode);
    }
</script>
您可以使用Qt中的QNetworkAccessManager类来实现传送图片和其他信息的功能。以下是一个简单的示例代码,演示了如何使用QNetworkAccessManager类同时上传图片和其他信息: ```cpp void sendRequest() { // 创建一个QNetworkAccessManager对象 QNetworkAccessManager *manager = new QNetworkAccessManager(this); // 创建一个QHttpMultiPart对象,用于传输多部分数据 QHttpMultiPart *multiPart = new QHttpMultiPart(QHttpMultiPart::FormDataType); // 创建一个QHttpPart对象,用于传输图片 QHttpPart imagePart; imagePart.setHeader(QNetworkRequest::ContentTypeHeader, QVariant("image/jpeg")); imagePart.setHeader(QNetworkRequest::ContentDispositionHeader, QVariant("form-data; name=\"image\"; filename=\"image.jpg\"")); QFile *file = new QFile("image.jpg"); file->open(QIODevice::ReadOnly); imagePart.setBodyDevice(file); file->setParent(multiPart); // 使QHttpMultiPart对象成为QFile对象的父对象,以便QHttpMultiPart在删除时自动删除QFile对象 // 添加其他信息 QHttpPart textPart; textPart.setHeader(QNetworkRequest::ContentDispositionHeader, QVariant("form-data; name=\"text\"")); textPart.setBody("Hello World!"); // 添加QHttpPart对象到QHttpMultiPart对象中 multiPart->append(imagePart); multiPart->append(textPart); // 创建一个QNetworkRequest对象 QUrl url("http://example.com/upload"); QNetworkRequest request(url); // 发送POST请求 QNetworkReply *reply = manager->post(request, multiPart); // 处理响应 connect(reply, &QNetworkReply::finished, this, [=]() { if (reply->error() == QNetworkReply::NoError) { qDebug() << "Upload succeeded"; } else { qDebug() << "Upload failed:" << reply->errorString(); } reply->deleteLater(); multiPart->deleteLater(); manager->deleteLater(); }); } ``` 在上面的示例中,我们首先创建了一个QNetworkAccessManager对象和一个QHttpMultiPart对象。然后,我们创建了一个QHttpPart对象来传输图片,并使用QFile对象将图片读入内存。我们还创建了另一个QHttpPart对象来传输文本信息。最后,我们将这两个QHttpPart对象添加到QHttpMultiPart对象中,并使用QNetworkAccessManager对象发送POST请求。在请求完成后,我们使用QNetworkReply对象处理响应,并在处理完后删除所有对象。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值