簡體   English   中英

Basil.js在粘貼圖像之前檢查URL?

[英]Basil.js Check URL before pasting image?

我最終希望使用basil.js在服務器上創建一個充滿圖像的文件夾,我想將其提取並放入indesign中。

該腳本可以工作,但是我需要一條類似IF語句的語句,該語句將錯誤檢查URL是否確實存在...因為當前該URL將放置一個黑色占位符,即使該URL上沒有實際圖像也是如此。

如果!= url .....則不必使用FOR循環...並且我會一直添加圖像,直到檢查整個目錄為止。

可能不是您的操作方法...對不起,但由於我是新手,所以我一直在做補丁工作。

#includepath "~/Documents/;%USERPROFILE%Documents";
#include "basiljs/bundle/basil.js";

var count = 1;
var x = 100;
var y = 100;

function draw() {

    for (i = 0; i < 15; i++) {

   var url = "http://www.minceandcheesepie.com/spaceinvaders/image" +  count + ".png";

   var newFile = new File("~/Documents/basiljs/user/data/image" + count + ".png");

  b.download(url, newFile);
  b.image('image' + count +'.png', x, y);

    x += 200; 
    y += 200;
    count++;

    app.select(NothingEnum.nothing, undefined);
    }

}
b.go();

您需要發出HTTP HEAD請求,以檢查URL的結果是什么:

reply = "";
conn = new Socket;

if (conn.open ("www.minceandcheesepie.com:80")) {
    // send a HTTP HEAD request
    conn.writeln("HEAD /spaceinvaders/image" + counter + ".png HTTP/1.0\r\nConnection: close\r\nHost: www.minceandcheesepie.com\r\n\r\n");
    // and read the server's reply
    reply = conn.read(999999);
    conn.close();
}

然后在reply您從服務器獲取一個字符串(服務器響應),該字符串告訴您該頁面是否存在,那么您只需要根據頁面的結果來解析它(如果它是200,則該頁面存在):

var serverStatusCode = parseInt(reply.split('\n\n')[0].split('\n')[0].split(' ')[1]);
if (serverStatusCode === 200) {
    alert('exists');
} else {
    alert('not exists');
}

URL的服務器響應示例存在:

HTTP/1.1 200 OK
Date: Wed, 16 Dec 2015 06:37:20 GMT
Server: Apache
Last-Modified: Wed, 16 Dec 2015 02:41:08 GMT
ETag: "67d-526fad6ab0af2"
Accept-Ranges: bytes
Content-Length: 1661
Connection: close
Content-Type: image/png

不存在URL的服務器響應示例:

HTTP/1.1 404 Not Found
Date: Wed, 16 Dec 2015 06:47:33 GMT
Server: Apache
Vary: Accept-Encoding
Connection: close
Content-Type: text/html; charset=iso-8859-1

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM