Jetzt müssen Bilder in komprimierte ZIP-Pakete gepackt werden, um Ajax auszuführen. Das Problem besteht jetzt darin, dass ich 10 Bilder habe Durch die Verpackung ist der Computer nicht mit dem Internet verbunden. Wie können Benutzer zu diesem Zeitpunkt daran erinnert werden? (Hinweis: Klicken Sie auf die Schaltfläche „Paket“ und es wird ein Ladefeld angezeigt. Wenn die Netzwerkverbindung auf halbem Weg getrennt wird, verschwindet dieses Feld nicht und wird weiter geladen. Nachdem die Netzwerkverbindung getrennt wurde, wird das Ajax-Rückgabeergebnis nicht an gesendet Server)
Der Code lautet wie folgt:
$filename = $path . $orderNumber . ".zip"; // 最终生成的文件名(含路径)
// 生成文件
$zip = new ZipArchive ();
if ($zip->open ( $filename, ZIPARCHIVE::CREATE ) !== TRUE) {
echo json_encode(array('state'=>0,'msg'=>NoFindFile));
exit;
}
//$imgArr 就是一个存储文件路径的数组 比如 array('/a/1.jpg,/a/2.jpg....');
foreach ( $imgArr as $val ) {
$zip->addFile ( $val, basename ( $val ) ); //把图片放入zip里面 成功返回true
}
$zip->close (); // 关闭
之前在foreach里判断是否断网的情况,但是加载框还是不会消失,是不是断网之后,ajax返回结果不会给服务器了?该如何解决最好??谢谢各位
你要明白ajax原理。在客戶端和服務器連接成功時候,客戶端處於等待狀態。假如正如你所所講的打包過程中服務器突然斷電(什麼鬼服務器還會那麼黑),即服務器沒有發出相應,這時候ajax,就會有個超時相應時間,你可以error提示用戶出現服務器問題