0

我需要允许用户在 javascript 中查看文件,但不能通过直接链接下载文件。

我知道使用 htaccess 和更改权限将不允许这样做,因为 Javascript 是客户端

因此剩下的唯一解决方案是只允许服务器访问文件,并通过 php 将其提供给 javascript。

目前,javascript插件迫使我向它发送一个url:

loader.load('example.stl'); 

外部 javascript 然后执行这个:

prototype.load = function (url, callback) {

var scope = this;

var xhr = new XMLHttpRequest();

function onloaded( event ) {

    if ( event.target.status === 200 || event.target.status === 0 ) {

            var geometry = scope.parse( event.target.responseText );

            scope.dispatchEvent( { type: 'load', content: geometry } );

            if ( callback ) callback( geometry );

    } else {

        scope.dispatchEvent( { type: 'error', message: 'Couldn\'t load URL [' + url + ']',
            response: event.target.responseText } );

    }

}

xhr.addEventListener( 'load', onloaded, false );
xhr.addEventListener( 'progress', function ( event ) {

    scope.dispatchEvent( { type: 'progress', loaded: event.loaded, total: event.total } );

}, false );

xhr.addEventListener( 'error', function () {

    scope.dispatchEvent( { type: 'error', message: 'Couldn\'t load URL [' + url + ']' } );

}, false );

xhr.overrideMimeType('text/plain; charset=x-user-defined');
xhr.open( 'GET', url, true );
xhr.send( null );

};

显然,javascript 文件以 XML 格式读取文件,但是,我对 Javascript 的经验不足,无法对其进行操作以满足我的需要。

4

1 回答 1

1

如果您“了解使用 htaccess 和更改权限将不允许这样做,因为 javascript 是客户端”,您还应该了解不可能“仅允许服务器访问文件,并且通过 php 将其提供给 javascript"

您要问的是不可能的-如果Javascript可以访问它,则浏览器的其余部分可以访问它。Javascript 没有比访问者浏览器的其余部分更多或更少的权限,即使有,他也可以在他的调试器控制台或插件中输入相关的 Javascript。

于 2013-05-21T00:12:55.890 回答