我想在我的网站上以iframe显示.doc
和.docx
个文件。
<iframe style="border-style: none;" src="http://docs.google.com/viewer?embedded=true&url=<s:url action="loadFile"><s:param name="id" value="id"/></s:url>" height="500" width="100%">
loadFile操作发送类型为流的结果
<action name="loadFile" class="com.view.file" method="loadFile">
<result name="success" type="stream">
<param name="contentType">${fileType}</param>
<param name="inputName">inputStream</param>
<param name="contentDisposition">inline;filename="${fileName}"</param>
<param name="bufferSize">1024</param>
</result>
</action>
当我在src属性中直接设置动作网址时,iframe会起作用。但是,使用src="http://docs.google.com/viewer?embedded=true&url=
时,操作永远不会被调用。
有没有其他替代显示MS Word文件?我可以通过直接将动作URL放在src属性中来显示pdf。
由于
修改
问题可能是因为iframe的src转换为:
src="http://docs.google.com/viewer?embedded=true&url=/App/loadFile?id=25"
所需的网址应该是操作的绝对网址,如:
src="http://docs.google.com/viewer?embedded=true&url=http://localhost/App/loadFile?id=25"
我怎样才能实现这一目标?它可能不适用于localhost,但应该在托管
上工作答案 0 :(得分:0)
使用forceAddSchemeHostAndPort
标记的s:url
属性获取完整的网址
例如
<s:url action='myaction' forceAddSchemeHostAndPort='true'>
<s:param name='id' value='25'/>
</s:url>