0
我正在開發一個使用JSP和Oracle XE的Job Portal網站。現在,求職者應該上傳他的Resume/CV.Say,這個文件名是Resume.pdf.Next,另一個求職者上傳他的Resume.pdf(同名)。我想避免保存具有相同名稱的文件。一個建議我在數據庫中存儲時使用文件名來協調日期。但我想連接Jobseeker ID(由Oracle在Sequence中創建)與這個文件名。 問題是:當上傳文件時,我不需要連接字符串。我只在將文件名寫入數據庫時需要它。如果沒有這種情況,我已成功上傳文件。 我給出了序列和插入過程的代碼。修改文件名的JSP文件上傳
create sequence js_id_seq
increment by 1
start with 100
nocache
nocycle;
/
create or replace procedure js_file_prefx(prefx out varchar2)
is
begin
select 'JS'||js_id_seq.**nextval** into prefx from dual;
end;
/
create or replace procedure ins_job_seekr (
name varchar2,
paswd varchar2,
profile varchar2,
email varchar2,
address varchar2,
phone number,
resume varchar2
)
is
begin
insert into employer values(
'JS'||js_id_seq.**currval**,
name,
paswd,
profile,
email,
address,
phone,
resume
);
end;
/
JSP代碼的一部分:
String emp_file="";
boolean isMultipart = ServletFileUpload.isMultipartContent(request);
String Filename1 ="";
File file;
String filePath="";
if (!isMultipart)
{
}
else {
DiskFileItemFactory factory = new DiskFileItemFactory();
------ //not giving code this part as this was working fine
else {
try { //if i put connection string here, it says that its a different
//instance of hr
CallableStatement cs=con.prepareCall("{call emp_file_prefx(?)}");
cs.registerOutParameter(1,Types.VARCHAR);
cs.execute();
emp_file= cs.getString(1);
Filename1 = item.getName();
filePath=config.getServletContext().getRealPath("/")+"upload_data\\";
Filename=Filename1.substring(Filename1.lastIndexOf("\\")+1);
Filename=Filename + emp_file;
if(Filename!="")
{ file = new File(filePath +Filename) ;
item.write(file);
}
}
catch(Exception err)
{
out.println(err.getMessage());
}
}
}
try
{
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
Connection con=DriverManager.getConnection
("jdbc:oracle:thin:@127.0.0.1:1521:XE","hr","hr");
CallableStatement cs1=con.prepareCall("{call ins_job_seekr(?,?,?,?,?,?)}");
cs1.setString(1,c_name);
cs1.setString(2,paswrd);
cs1.setString(3,c_prof);
cs1.setString(4,mail);
cs1.setString(7,addres);
cs1.setInt(8,Integer.parseInt(phone_no));
cs1.setString(9,Filename);
cs1.execute();
out.println("Insert successful");
//con.close();
}
catch(Exception err)
{
out.println(err.getMessage());
}
}
thanx的回覆。但我實際上想在註冊過程中上傳文件。我發現了一個解決方案,雖然我通過將emp_file內容傳遞給可調用語句插入到Job搜索器的數據庫中。當然,我不得不修改插入程序。 – Deathbmine 2012-03-22 17:40:58