我有一个文件的路径,我想发送到服务器的休息Web服务.我正在使用xmlhttprequest对象.这篇文章如下:
var url = "http://localhost:8080/RestWSGS/jersey/gridsense";
var boundary = "--------------" + (new Date).getTime();
xmlHttp.open('POST', url, true);
xmlHttp.onreadystatechange = function ()
{
if (this.readyState != 4)
return;
var result =this.responseText;
document.write(result);
};
xmlHttp.setRequestHeader('Content-Type', 'multipart/form-data; boundary=' + boundary);
var part ="";
part += 'Content-Disposition: form-data; ';
part += 'name="' + document.getElementById("filename").name + '" ; ';
//alert(document.getElementById("filename").value);
part += 'filename="'+ document.getElementById("filename").value + '";\r\n';
part += "Content-Type: application/xml";
part += "\r\n\r\n"; // marks end of the headers part
part += 'filename="'+ document.getElementById("filename").value + '";\r\n';
part+= …Run Code Online (Sandbox Code Playgroud) 我的Project结构在src/main /文件夹中有resources文件夹.resources文件夹包含文件server.properties.我的pom如下:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.fde</groupId>
<artifactId>Listener</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<name>Listener</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<hibernate.version>3.6.10.Final</hibernate.version>
<java.version>1.6</java.version>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<!-- Hibernate dependencies START -->
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>2.0</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-ehcache</artifactId>
<version>${hibernate.version}</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>${hibernate.version}</version>
</dependency>
<dependency>
<groupId>javassist</groupId>
<artifactId>javassist</artifactId>
<version>3.12.1.GA</version>
</dependency>
<dependency>
<groupId>commons-collections</groupId>
<artifactId>commons-collections</artifactId>
<version>3.2.1</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.9</version>
</dependency>
<!-- Hibernate dependencies END -->
</dependencies>
<build>
<sourceDirectory>src/main/java</sourceDirectory>
<resources>
<resource>
<directory>resources</directory>
</resource>
</resources>
<testSourceDirectory>src/test/java</testSourceDirectory>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>2.2</version> …Run Code Online (Sandbox Code Playgroud) 我的项目中有一个需求,我想将文件读入表 CLOB 数据中。数据库是oracle 12g。我们正在使用 liquibase 来维护数据。该项目在springboot。Liquibase 使用 .sql 文件加载更改。
我面临的障碍是 sql 需要文件的绝对路径,而不是相对于当前变更集文件的路径。
关于如何使用“.”的任何指示。或变更集的sql中的“类路径:”?
我所做的尝试之一是通过带有 databaseChangeLog 标记的属性标记在变更集中发送一个属性。此类属性的值在变更集文件中可用,但它们不会解释诸如“classpath:”之类的占位符。因此我被困住了。将
dbms_lob.fileopen
只接受使用绝对路径的目录对象。不 ”。” 等理解。这 。在文件路径中,从数据库安装根目录开始,这对我没有用。我想要存储所有变更集文件的路径。请帮助如果您以任何方式解决了这个问题..
如果需要,我会发布更多详细信息..感谢帮助..
我的html中有一个input type = file标签,允许用户选择多个文件.表单的操作是REST Web服务:
@POST
@Path("savefile")
@Produces ({MediaType.TEXT_PLAIN})
public String createObjects(
@FormDataParam("datafile") FormDataMultiPart file,
@FormParam("username") String unm
//@Context HttpServletRequest request
){....}
Run Code Online (Sandbox Code Playgroud)
最初,我使用请求对象检索请求中的所有FileItem,然后将其保存到服务器.没问题.现在我想发送一个字符串数据和文件.为此,我读到参数需要是FormDataParam类型.因此我添加了该参数.这是我的客户端代码:
<form id="form1" action="http://comp1:8080/RestWSGS/jersey/UploadFiles/savefile"
enctype="multipart/form-data" method="post">
<input name="username" type="text" style="display:none" value="abc"/>
<input id="loadId" multiple="multiple"
type="file" name="datafile" required="required" autofocus="autofocus"
onchange="selectFiles(this)"/>
<div>
<input style="display: none;" type="submit" value="Send">
</div>
</form>
Run Code Online (Sandbox Code Playgroud)
我不确定什么必须是文件参数的类型,以允许其中的多个文件???? 文件参数给我多个文件还是我必须恢复到@Context注入?如果是这样,我将如何检索字符串参数?
欢迎任何帮助!
编辑:我已将我的REST修改为以下内容:
@POST
@Path("savefile")
//@Consumes (MediaType.MULTIPART_FORM_DATA)
public void createObjects(
//@FormDataParam("datafile") FormDataMultiPart file,
//@FormParam("username") String unm
@Context HttpServletRequest request
)
{
try
{
FileHandler f;
f = new FileHandler(new File …Run Code Online (Sandbox Code Playgroud)