gpt4 book ai didi

python - QNetworkAccessManager : Posting files via HTTP

转载 作者:行者123 更新时间:2023-11-30 23:48:46 24 4
gpt4 key购买 nike

我只需要使用 QNetworkAccessManager 通过 PHP 在 apache 服务器上上传多个文件。

我在这里问是因为我是Python和QT(PySide)的新手,我想知道是否有人有演示这一点的教程或代码示例(Python)。

注意:如果没有此类内容,我会尝试自己做,然后分享教程。

最佳答案

不知道这是否是最好的方法,但效果很好。

    class Upload():
def __init__(self):
self.url = QUrl("http://www.website.com/up.php")
self.manager = QtNetwork.QNetworkAccessManager()

def sendRequest(self, replayfile):
self.request = QtNetwork.QNetworkRequest(self.url)

self.request.setRawHeader("Host", str(self.url.host()));
self.request.setRawHeader("Content-type", "multipart/form-data; boundary=AaB03x");

fp = QFile(replayfile)
fp.open(QIODevice.ReadOnly)
bytes = QByteArray()

bytes.append("--AaB03x\r\n")
bytes.append("Content-Disposition: ")
bytes.append("form-data; name=\"replay\"; filename=\"" + QByteArray(str(QFileInfo(replayfile).fileName())) + "\"\r\n")
bytes.append("Content-Type: %s\r\n"%mimetypes.guess_type(str(replayfile))[0])
bytes.append("\r\n")
bytes.append(fp.readAll())

fp.close()

bytes.append("\r\n")
bytes.append("--AaB03x--")

contentLength = bytes.length()
self.request.setRawHeader("Content-Length", "%s" % contentLength)

self.manager.post(self.request, bytes)

在 PHP 中:

    Array
(
[replay] => Array
(
[name] => test.SC2Replay
[type] => None
[tmp_name] => /tmp/phpK6tChh
[error] => 0
[size] => 9882
)

)

关于python - QNetworkAccessManager : Posting files via HTTP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7922015/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com