Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何获取上传文件的URL?_Javascript_Amazon S3_Fine Uploader - Fatal编程技术网

Javascript 如何获取上传文件的URL?

Javascript 如何获取上传文件的URL?,javascript,amazon-s3,fine-uploader,Javascript,Amazon S3,Fine Uploader,我正在成功地将文件上载到S3 但是,我在尝试获取上传文件的URL时遇到了问题 我看到有一个getKey方法,但它似乎不像我想的那样工作 本质上,我试图用上传文件的链接替换列出的文件名。如果上传人无法获得指向文件的链接,则无法上传文件 所以我一直在尝试获取上传对象的URL或键,并计划在“完成”事件中修改文件名文本 也许有更好的方法修改最终文件名文本 以下是我似乎不起作用的东西: }).on('complete', function (event, id, name, responseJSO

我正在成功地将文件上载到S3

但是,我在尝试获取上传文件的URL时遇到了问题

我看到有一个getKey方法,但它似乎不像我想的那样工作

本质上,我试图用上传文件的链接替换列出的文件名。如果上传人无法获得指向文件的链接,则无法上传文件

所以我一直在尝试获取上传对象的URL或键,并计划在“完成”事件中修改文件名文本

也许有更好的方法修改最终文件名文本

以下是我似乎不起作用的东西:

    }).on('complete', function (event, id, name, responseJSON) {

    // Fails, not using the fineuploader object correctly, manualuploader is the fineuploader object.
    console.log("Object Key:+manualuploader.getKey(id));

    });
您有两个选择:

  • 通过AWS SDK服务器端获取文件的签名URL,并在对Fine Uploader的uploadSuccess请求的响应中返回URL。它将通过response参数提供给“complete”事件处理程序

  • 使用键和bucket URL构造URL客户端

  • 如果文件不可公开查看,则必须使用选项1。fineuploader.com上的演示使用选项1。在大多数情况下,这是最合适的方法,除非您同意允许任何人从您的bucket流式传输文件,只要他们想永远这样

    另外,如果您在使用jQuery插件时试图在一个优秀的Uploader实例上调用
    getKey
    方法或任何其他方法,则必须这样做。上面代码中对
    getKey
    方法的调用与文档不一致。您需要像这样调用getKey:
    $(“#uploader”)。fineUploader3(“getKey”,id)
    您有两个选项:

  • 通过AWS SDK服务器端获取文件的签名URL,并在对Fine Uploader的uploadSuccess请求的响应中返回URL。它将通过response参数提供给“complete”事件处理程序

  • 使用键和bucket URL构造URL客户端

  • 如果文件不可公开查看,则必须使用选项1。fineuploader.com上的演示使用选项1。在大多数情况下,这是最合适的方法,除非您同意允许任何人从您的bucket流式传输文件,只要他们想永远这样


    另外,如果您在使用jQuery插件时试图在一个优秀的Uploader实例上调用
    getKey
    方法或任何其他方法,则必须这样做。上面代码中对
    getKey
    方法的调用与文档不一致。您需要像这样调用getKey:
    $(“#uploader”).fineUploader3(“getKey”,id)

    你好,Ray,感谢您的快速响应。不幸的是,我仍然有一个小问题。我试图找到服务器返回的完整JSON响应,但在处理“complete”事件和查看JSONresponse变量时,我只看到一个简单的“success:true”实体。我确实在一些发送到控制台的调试输出中看到HTML响应似乎已被捕获,它确实包含完整的URL,事实上,我看到我的服务器上的PHP处理程序被设置为像fineuploader示例一样返回“templink”。所以,我似乎无法得到正确的JSON响应,谢谢你的帮助。你不应该返回HTML。您必须返回JSON作为对上传成功POST请求的响应。看一看S3PHP演示代码,它在fineuploader.com上用于从服务器返回到客户端的链接。如果您遵循这个示例,它将起作用。将响应参数的内容打印到控制台,或者在您选择的javascript调试器中检查它。如果看不到所需的属性,请查看HTTP流量并重新检查服务器端代码。我会缺少哪些权限?发布HTTP/1.1 HTTP/1.1 200确定。。。内容类型:text/html
    致命错误:未捕获Aws\S3\Exception\AccessDeniedException:Aws错误代码:AccessDenied,状态代码:403,Aws请求ID:2D529E5D8FC68856,Aws错误类型:客户端,Aws错误消息:访问被拒绝,用户代理:aws-sdk-php2/2.4.6 Guzzle/3.7.3 curl/7.19.7 PHP/5.3.24插入/home/content/68/8770868/html/fineuploader/aws/aws/Common/Exception/NamespaceExceptionFactory.PHP第91行
    你好,谢谢你的快速回复。不幸的是,我仍然有一个小问题。我试图找到服务器返回的完整JSON响应,但在处理“complete”事件和查看JSONresponse变量时,我只看到一个简单的“success:true”实体。我确实在一些发送到控制台的调试输出中看到HTML响应似乎已被捕获,它确实包含完整的URL,事实上,我看到我的服务器上的PHP处理程序被设置为像fineuploader示例一样返回“templink”。所以,我似乎无法得到正确的JSON响应,谢谢你的帮助。你不应该返回HTML。您必须返回JSON作为对上传成功POST请求的响应。看一看S3PHP演示代码,它在fineuploader.com上用于从服务器返回到客户端的链接。如果您遵循这个示例,它将起作用。将响应参数的内容打印到控制台,或者在您选择的javascript调试器中检查它。如果看不到所需的属性,请查看HTTP流量并重新检查服务器端代码。我会缺少哪些权限?发布HTTP/1.1 HTTP/1.1 200确定。。。内容类型:text/html
    致命错误:未捕获Aws\S3\Exception\AccessDeniedException:Aws错误代码:AccessDenied,状态代码:403,Aws请求ID:2D529E5D8FC68856,Aws错误类型:客户端,Aws错误消息:访问被拒绝,用户代理:aws-sdk-php2/2.4.6 Guzzle/3.7.3 curl/7.19.7 PHP/5.3.24插入/home/content/68/8770868/html/fineuploader/aws/aws/Common/Exception/NamespaceExceptionFactory.PHP,第91行