使用服务器端Javascript检查web服务器上的文件是否存在
Checking existance of a file on web server using server-side Javascript
我在web服务器上使用JavaScript生成HTML代码,HTML包含一个id为"ImageID"的对象和一个指向"Picture1.jpg"的src参数。
我想刷新网页每5秒和使用Javascript生成一个新的文件路径使用递增数字说"Picture2.jpg"或"Picture3.jpg",但我想使用Javascript检查是否存在这样一个新的文件名在服务器上尝试使用
刷新img对象之前document.getElementById("ImageID").src="Picture2.jpg";
如何使用服务器端JavaScript来测试特定服务器端文件的存在?
这是一个简单的FileExists()方法,还是必须以某种方式查询document.getElementById(ImageName)返回的对象,以确定它是否成功找到了文件。
谢谢大家。
您可以使用XMLHttpRequest
请求检查在相同的服务器上是否存在文件,并检查响应代码是否为200
,即:
<script>
var http = new XMLHttpRequest();
http.open('HEAD', "https://yourserver/file.jpg", false);
http.send();
console.log(http.status);
</script>
注意:如果cors未设置,则无法使用XMLHttpRequest
查询远程服务器
感谢Pedro Lobito提供的答案。下面的代码对我有效。
<script TYPE="text/javascript">
function FileExists(FullFilePath) // Thanks to advice from Pedro Lobito
{
var http = new XMLHttpRequest(); // Best placed outside function
http.open('HEAD', FullFilePath, false);
http.send(); // This sets http.status to 200 if file exists (404 if not)
return (http.status == 200);
}
// Example of call
TheFileExisis = FileExists("http://MyArea/MyWebHost.net/Images/Picture2.jpg");
</script>
我正在使用MOCHA CHAI进行单元测试,我们有点击按钮下载PDF的链接。
——server.js
const express = require('express');
const path = require('path');
const app = express();
const port = 3000;
let userLang;
app.use(express.static('public'));
app.get('/files/:file(*)', (req, res, next) => {
const file = req.params.file;
const pathToFile = path.join(__dirname, '/files/', file);
res.download(pathToFile, (err) => {
if (!err) return; // file sent
if (err && err.status !== 404) {
next(err);
}
res.statusCode = 404;
res.send('Cant find that file, sorry!');
});
});
——server.spec.js
import request from 'supertest';
const server = require('../../server/server');
describe('loading express', () => {
let server;
beforeEach(() => {
server.start();
});
afterEach(() => {
server.close();
});
it('should responds successfully to /', (done) => {
request(server)
.get('/')
.expect(200, done);
});
it('should have download file', (done) => {
request(server)
.get('/files/XYZ.pdf')
.expect(200, done);
});
});
相关文章:
- js文件是否阻碍了war文件的构建
- 使用jQuery检查文件是否存在
- 如何检测 javascript 文件是否被 IE11 安全设置阻止
- 为用户应用程序托管 javascript 文件是否安全
- ANT:检查文件是否为空
- Extjs 抛出错误“请验证文件是否存在”
- http(localhost或remote)提供的文件是否可以从通过file://protocol打开的本地文件访问?反
- 如何检查内容txt文件是否已更改
- 方法来查看jQuery文件是否已完全加载,然后执行与其相关的函数
- 如何知道向iframe提交表单和文件是否失败
- Node js在复制之前检查文件是否打开
- 是否可以检查文件是否返回 404 错误,如果它位于具有 javascript 或 jQuery 的不同服务器上
- 如何检查闪存文件是否停止使用 javascript
- 是否有任何工具可以检查js文件是否可以安全压缩
- 检查文本文件是否包含带有javascript的内容
- 拥有多个 HTML 页面通常使用的单独 javascript 文件是否会加快页面加载速度
- 根据页面分隔JS文件是否是一种好的做法
- JavaScript 使用 Google 地图 API 检查文件是否存在
- 检查目标文件是否已存在
- 帆 JS 检查上传文件是否已发送