向javascript提供文件

时间:2013-05-21 00:07:33

标签: php javascript xml

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

I understand that using htaccess and changing the permissions will not allow this to ever be possible due to the fact that Javascript is client side

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

目前,javascript插件强制我发送一个网址:

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来操作它以满足我的需求。

1 个答案:

答案 0 :(得分:1)

如果您“明白使用htaccess并且由于javascript是客户端”而无法更改权限,那么您还应该明白,不可能< em>“只允许服务器访问该文件,并通过php”将其提供给javascript。

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