[英]Problem posting image to clipboard using Python and PHP
大家好(我的第一篇文章)。 请温柔点! 我正在运行 Windows 10 版本 10.0.18363 Build 18363。Python 3.8.5 Apache 2.4.41
我找到了一个如何将图像复制到 Windows 剪贴板的示例。 如果我在 cmd.exe 级别运行该程序,它就会工作,并且我可以从剪贴板粘贴复制的图像。 如果我使用 exec(program to run) 从 PHP 脚本(这是一个要求)中执行相同的程序,它运行时不会出现任何错误。 但是图像不在剪贴板中。 我尝试创建一个 .bat 文件,然后使用 PHP exec(.bat 文件),但没有将任何内容复制到剪贴板。 在 cmd.exe 级别运行时,.bat 文件再次成功运行。 我已经在 cmd.exe 级别运行 whoami 并且正确的用户(即我自己作为管理员)显示 noellaptop\\rorke 除了使用 .bat 文件,我还尝试了 exec(使用 python 的路径和要运行的 python 脚本) . 任何建议或帮助将不胜感激,因为我不是经验丰富的 Python 程序员。
下面的代码是Python 脚本。
#!c:/users/rorke/appdata/local/programs/python/python38/python.exe
from io import BytesIO
import win32clipboard
from PIL import Image
import cgi, cgitb
print ("Content-type:text/html\r\n\r\n")
# Create instance of FieldStorage
#form = cgi.FieldStorage()
#filepath = form.getvalue('image_url')
filepath = "C:/wamp64/www/PhotoApp2.0/favicon.ico"
#print(filepath)
def send_to_clipboard(clip_type, data):
win32clipboard.OpenClipboard()
win32clipboard.EmptyClipboard()
win32clipboard.SetClipboardData(clip_type, data)
win32clipboard.CloseClipboard()
print("Done!")
image = Image.open(filepath)
output = BytesIO()
image.convert("RGB").save(output, "BMP")
data = output.getvalue()[14:]
output.close()
send_to_clipboard(win32clipboard.CF_DIB, data)
下面的代码是PHP 脚本。
<?php
$bat_filename = "aaCopyImage.bat";
$bat_log_filename = "aaCopyImage_bat.log";
$bat_file = fopen($bat_filename, "w");
if($bat_file) {
fwrite($bat_file, "@echo off"."\n");
fwrite($bat_file, "echo Starting process >> ".$bat_log_filename."\n");
fwrite($bat_file, "C:/Users/rorke/AppData/Local/Programs/Python/Python38/python.exe c:/wamp64/www/cgi-bin/hpCopyText.py >> ".$bat_log_filename."\n");
fwrite($bat_file, "echo End proces >> ".$bat_log_filename."\n");
fwrite($bat_file, "EXIT"."\n");
fclose($bat_file);
}
exec("aaCopyImage.bat");
?>
将图像从文件复制到剪贴板的简单方法。 我不确定这是否能回答 Ops 问题,但因为我才刚刚找到下面描述的方法,所以我想我会分享它。 我目前使用的是最新的 Windows 10。我不知道要进行任何更改以使其正常工作。 我尚未对此进行彻底测试 - 使用风险自负!
我希望这对你们中的一些人有帮助。 向前传递。 最好的祝愿。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.