Amfphp1.9 非beta版 相干情况
Amfphp1.9 非beta版 相关情况
1.编码问题
Fatal error: Uncaught exception 'VerboseException' with message 'Cannot modify header information
修正办法:
采用ANSI编码(这种搞起来,转换比较麻烦)或UTF8 no BOM,而非UTF8 with BOM
存为UTF8 no BOM模式:
DW参见:http://www.googlephp.cn/archives/tag/cannot-modify-header-information
DzSoft如图:
另外修改根目录下gateway.php (line127):
//$gateway->setCharsetHandler("utf8_decode", "ISO-8859-1", "ISO-8859-1");//注释掉,改为:
$gateway->setCharsetHandler("none", "ISO-8859-1", "ISO-8859-1");
2.NetStatusEvent
Flex/Flash 则报:
Error #2044: 未处理的 NetStatusEvent:。 level=error, code=NetConnection.Call.BadVersion
修正办法:
根目录下:
gateway.php(Line 132)
if(PRODUCTION_SERVER){//Disable profiling, remote tracing, and service browser//$gateway->disableDebug();//把它注释掉// Keep the Flash/Flex IDE player from connecting to the gateway. Used for security to stop remote connections.//$gateway->disableStandalonePlayer();//把它注释掉}
3.Save byteArray into Mysql with Amfphp
AS code:
package { import flash.display.Sprite; import flash.net.NetConnection; import flash.net.ObjectEncoding; import flash.net.Responder; import flash.utils.ByteArray; import flash.display.BitmapData; public class Test extends Sprite { private var nc:NetConnection; private var rsp:Responder; public function Test() { rsp = new Responder(onResult,null); nc = new NetConnection( ); nc.objectEncoding = ObjectEncoding.AMF3; nc.connect("http://127.0.0.1/AmfphpForWareHouse/gateway.php"); nc.call("warehouse.MyPage.create",rsp,getData()); } public function getData():Object { var obj:Object=new Object(); obj.firstName = "diding"; var bpd:BitmapData = new BitmapData(a.width,a.height); bpd.draw(a); var jpegEnc:JPEGEncoder = new JPEGEncoder(80); var dat:ByteArray = jpegEnc.encode(bpd); obj.pic = dat as ByteArray; return obj; } private function onResult( e: * ):void { trace(e); } }}
Php Code:
<?phprequire_once "ConnectionHelper.php";class MyPage{public function create($contact){$GLOBALS['amfphp']['encoding']='amf3';$times=date("Y-m-d H:i:s");$ps1=$contact['firstName'];$ba=$contact['pic'];$data = $ba->data;$data = mysql_real_escape_string($data);$result=mysql_query("INSERT INTO userinfo (firstname,pic,addTime)VALUES ('$ps1','$data','$times')");return $result;}}?>
这样能存入Mysql数据库了,但在返回给flash或flex时,会出现convert报错,这时需要返回前在map(类映射)中new一下:new byteArray();
如:
<?phpclass AppVO{ var $_explicitType ="vo.AppVO"; var $id; var $userName; var $email; var $phone; var $address; var $pic; public function AppVO(){} public function mapObject($obj) { $this->id = $obj['id']; $this->userName = $obj['username']; $this->email = $obj['email']; $this->phone = $obj['phone']; $this->address = $obj['address']; $this->pic =new ByteArray($obj['pic']); }}?>

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Funktion bedeutet Funktion. Es handelt sich um einen wiederverwendbaren Codeblock mit bestimmten Funktionen. Er kann Eingabeparameter akzeptieren, bestimmte Operationen ausführen und Ergebnisse zurückgeben. Code, um die Wiederverwendbarkeit und Wartbarkeit des Codes zu verbessern.

Lösungen für 504-Gateway-Timeout: 1. Abfrage und Code optimieren; . Fehlerbehebung; 9. Cache hinzufügen 10. Anfragen analysieren. Die Behebung dieses Fehlers erfordert häufig eine Kombination verschiedener Faktoren, darunter Serverleistung, Netzwerkkonnektivität, Proxyserverkonfiguration und Anwendungsoptimierung.

Flash ist eine Software zur Erstellung multimedialer und interaktiver Inhalte mit Funktionen wie Vektorgrafiken, Timeline-Animationen, Interaktivität und Multimedia-Verarbeitungsfunktionen. Obwohl Flash einst sehr beliebt war, wurde es mit dem Aufkommen neuer Technologien schrittweise eingestellt und der offizielle Support wurde im Jahr 2020 eingestellt.

In diesem Artikel lernen wir die Funktion enumerate() und den Zweck der Funktion „enumerate()“ in Python kennen. Was ist die Funktion enumerate()? Die Funktion enumerate() von Python akzeptiert eine Datensammlung als Parameter und gibt ein Aufzählungsobjekt zurück. Aufzählungsobjekte werden als Schlüssel-Wert-Paare zurückgegeben. Der Schlüssel ist der Index, der jedem Element entspricht, und der Wert sind die Elemente. Syntax enumerate(iterable,start) Parameter iterable – Die übergebene Datensammlung kann als Aufzählungsobjekt namens iterablestart zurückgegeben werden – Wie der Name schon sagt, wird der Startindex des Aufzählungsobjekts durch start definiert. wenn wir es ignorieren

Dieser Artikel vermittelt Ihnen relevantes Wissen über JavaScript. Er stellt Ihnen hauptsächlich die Unterschiede zwischen var, let und const sowie die Beziehung zwischen ECMAScript und JavaScript vor. Ich hoffe, es ist hilfreich für alle.

Detaillierte Erläuterung der Rolle und Funktion der MySQL.proc-Tabelle. MySQL ist ein beliebtes relationales Datenbankverwaltungssystem. Wenn Entwickler MySQL verwenden, müssen sie häufig gespeicherte Prozeduren erstellen und verwalten. Die MySQL.proc-Tabelle ist eine sehr wichtige Systemtabelle. Sie speichert Informationen zu allen gespeicherten Prozeduren in der Datenbank, einschließlich des Namens, der Definition, der Parameter usw. der gespeicherten Prozeduren. In diesem Artikel erklären wir ausführlich die Rolle und Funktionalität der MySQL.proc-Tabelle

Für die Audioausgabe und -eingabe sind bestimmte Treiber und Dienste erforderlich, damit sie unter Windows 11 wie erwartet funktionieren. Manchmal treten im Hintergrund Fehler auf, die zu Audioproblemen wie fehlender Audioausgabe, fehlenden Audiogeräten, verzerrtem Audio usw. führen. So beheben Sie, dass der Audiodienst unter Windows 11 nicht reagiert. Wir empfehlen Ihnen, mit den unten genannten Korrekturen zu beginnen und sich durch die Liste zu arbeiten, bis Sie Ihr Problem gelöst haben. Der Audiodienst reagiert unter Windows 11 aus verschiedenen Gründen möglicherweise nicht mehr. Mithilfe dieser Liste können Sie die meisten Probleme überprüfen und beheben, die verhindern, dass Audiodienste unter Windows 11 reagieren. Bitte befolgen Sie die entsprechenden Abschnitte unten, um Ihnen durch den Prozess zu helfen. Methode 1: Starten Sie den Audiodienst neu

Schritte zum Konfigurieren des Standard-Gateways: 1. Bestimmen Sie die IP-Adresse des Routers. 3. Konfigurieren Sie die Netzwerkverbindung. 5. Geben Sie die IP-Adresse und die Subnetzmaske ein . Konfigurieren Sie das Standard-Gateway ;7. Konfigurieren Sie den DNS-Server. Detaillierte Einführung: 1. Bestimmen Sie die IP-Adresse des Routers. Die IP-Adresse des Routers finden Sie auf der Rückseite des Routers oder im Benutzerhandbuch .
