ورود

View Full Version : سوال: نحوه آپلود فایل در یک دایرکتوری در سرور



amirjalili
پنج شنبه 07 آبان 1388, 15:32 عصر
دوستان آیا کسی کدی داره راجع به آپلود فایل؟
من میخوام یک عکس رو در سرور آپلود کنم. اما نمیدونم چطور این کار رو کنم.
یه سورس دیدم اما نمیدونم در این سورس فایل کجا آپلود میشه..
اینم سورس: لطفا هر کمکی میتونید بهم بکنید : ممنون.



<%@ page import="java.io.*" %>
<%
//to get the content type information from JSP Request Header
String contentType = request.getContentType();
if ((contentType != null) && (contentType.indexOf("multipart/form-data") >= 0))
{
DataInputStream in = new DataInputStream(request.getInputStream());
//we are taking the length of Content type data
int formDataLength = request.getContentLength();
//out.print(formDataLength);
byte dataBytes[] = new byte[formDataLength];
int byteRead = 0;
int totalBytesRead = 0;
//this loop converting the uploaded file into byte code
while (totalBytesRead < formDataLength)
{
byteRead = in.read(dataBytes, totalBytesRead, formDataLength);
totalBytesRead += byteRead;
}
String file = new String(dataBytes);
//for saving the file name
String saveFile = file.substring(file.indexOf("filename=") + 10);
saveFile = saveFile.substring(0, saveFile.indexOf("\n"));
saveFile = saveFile.substring(saveFile.lastIndexOf("\\") + 1,saveFile.indexOf("\""));
//out.print(saveFile);
int lastIndex = contentType.lastIndexOf("=");
String boundary = contentType.substring(lastIndex + 1,contentType.length());
int pos;
//extracting the index of file
pos = file.indexOf("filename=\"");
pos = file.indexOf("\n", pos) + 1;
pos = file.indexOf("\n", pos) + 1;
pos = file.indexOf("\n", pos) + 1;
int boundaryLocation = file.indexOf(boundary, pos) - 4;
int startPos = ((file.substring(0, pos)).getBytes()).length;
int endPos = ((file.substring(0, boundaryLocation)).getBytes()).length;
// creating a new file with the same name and writing the new file


FileOutputStream fileOut = new FileOutputStream(saveFile);
fileOut.write(dataBytes, startPos, (endPos - startPos));
fileOut.flush();
fileOut.close();
%><Br><table border="2"><tr><td><b>You have successfully
upload the file by the name of:</b>
<% out.println(saveFile); %></td></tr></table> <%
}
%>

it4six
پنج شنبه 07 آبان 1388, 17:38 عصر
جایی که InputStream باشه یعنی داره یه درگاه ورودی باز می کنه و جاییکه OutputStream یعنی سعی بازکردن یه درگاه خروجی داره و می خواد ذخیره یا ... انجام بده ، نمیدونم کد بالا کار می کنه یا ولی شبیه هست احتمالا اگر کار نکنه یه چند خطی رو تغیر بدیم کار خواهد کرد.

amirjalili
پنج شنبه 07 آبان 1388, 18:45 عصر
دوستان من فقط میخوام مثلا عکس در درایو c ذخیره بشه..
آدرسی رو که میخوام عکس اونجا ذخیره بشه رو کجا باید بدم..
همین.
فقط اگه من بتونم عکس رو تو جایی که میخوام ذخیره کنم مشکلم حل میشه.
دوستان کمک کنید لطفا.
کد بالا هم کد خیلی ساده ای هست. فقط گیر من سر ذخیره کردن عکسه که نمیدونم با چه متدی این کار انجام میشه. من دات نت کار میکردم. اونجا یه متد saveas بود که داخلش آدرس رو میدادیم و اون هم ذخیره میکرد. به همین راحتی.

ممنون از دوستان اگه پاسخ من رو بدهند.:چشمک:

mazdadoost
پنج شنبه 07 آبان 1388, 20:10 عصر
دوستان من فقط میخوام مثلا عکس در درایو c ذخیره بشه..
آدرسی رو که میخوام عکس اونجا ذخیره بشه رو کجا باید بدم..
همین.
فقط اگه من بتونم عکس رو تو جایی که میخوام ذخیره کنم مشکلم حل میشه.
دوستان کمک کنید لطفا.
کد بالا هم کد خیلی ساده ای هست. فقط گیر من سر ذخیره کردن عکسه که نمیدونم با چه متدی این کار انجام میشه. من دات نت کار میکردم. اونجا یه متد saveas بود که داخلش آدرس رو میدادیم و اون هم ذخیره میکرد. به همین راحتی.



ممنون از دوستان اگه پاسخ من رو بدهند.:چشمک:
دوست عزیز : این جا رو مطالعه کنید:http://commons.apache.org (http://commons.apache.org/fileupload/using.html)
/fileupload/using.html (http://commons.apache.org/fileupload/using.html)