① 使用android上傳圖片到伺服器,並且把圖片保存到伺服器的某個文件夾里
有兩種方法,第一,把你的圖片轉成位元組流,然後用post方法把位元組流傳到服務端,然後服務端接收到位元組流之後,開啟一個線程把它重新壓縮成圖片,保存在某個文件夾下面。
第二,開啟一個線程,用socket直接把圖片放到stream中傳到服務端,服務端接收後保存到文件夾下。
② 我要在一個網頁上傳一張圖片到伺服器,然後保存圖片的地址,在另一個頁面顯示圖片
public class UploadAction extends ActionSupport {
//接收文件 名稱需要和表單name名稱一致
private File image;
//上傳多個圖片文件
private File[] images;
//上傳文件類型[image]為表單name名稱,ContentType為固定寫法
private String imageContentType;
private String[] imagesContentType;
//上傳文件名稱[image]為表單name名稱,FileName為固定寫法
private String imageFileName;
private String[] imagesFileName;
//上傳一個文件
public String upload(){
//將長傳的文件存儲到images文件夾下,首先根據images名稱得到具體路徑
String realPath = ServletActionContext.getServletContext().getRealPath("images");
File file = new File(new File(realPath),imageFileName);
//如果輸入為空 沒選擇圖片的話
if(image != null){
//判斷文件夾存不存在
if(!file.getParentFile().exists()){
file.getParentFile().mkdir(); //創建一個文件夾
}
try {
FileUtils.File(image, file);
super.addActionError("上傳成功");
} catch (IOException e) {
super.addActionError("上傳失敗");
e.printStackTrace();
}
}
return SUCCESS;
}
//上傳多個文件
public String manyUpload(){
//將長傳的文件存儲到images文件夾下,首先根據images名稱得到具體路徑
String realPath = ServletActionContext.getServletContext().getRealPath("images");
System.out.println(realPath);
File file =null;
if(images != null){
try {
for (int i = 0; i <images.length ; i++) {
file = new File(new File(realPath),imagesFileName[i]);
FileUtils.File(images[i], file);
}
super.addActionError("上傳成功");
} catch (IOException e) {
super.addActionError("上傳失敗");
e.printStackTrace();
}
}
return SUCCESS;
}
public File getImage() {
return image;
}
public void setImage(File image) {
this.image = image;
}
public String getImageContentType() {
return imageContentType;
}
public void setImageContentType(String imageContentType) {
this.imageContentType = imageContentType;
}
public String getImageFileName() {
return imageFileName;
}
public void setImageFileName(String imageFileName) {
this.imageFileName = imageFileName;
}
public File[] getImages() {
return images;
}
public void setImages(File[] images) {
this.images = images;
}
public String[] getImagesContentType() {
return imagesContentType;
}
public void setImagesContentType(String[] imagesContentType) {
this.imagesContentType = imagesContentType;
}
public String[] getImagesFileName() {
return imagesFileName;
}
public void setImagesFileName(String[] imagesFileName) {
this.imagesFileName = imagesFileName;
}
}
③ php怎麼把圖片數據保存為jpg圖片到伺服器目錄
第一步:通過$_FILES獲取文件信息。
第二步:指定新文件名稱以及路徑,並賦值給一個變數。
第三步:通過move_uploaded_file上傳文件。
第四步:上傳成功後,將數值存入資料庫伺服器目錄即可。
代碼如下
1.conn.php
<?
$host="localhost";//資料庫伺服器名稱
$user="root";//用戶名
$pwd="1721";//密碼
$conn=mysql_connect($host,$user,$pwd);
mysql_query("SET
character_set_connection=gb2312,
character_set_results=gb2312,
character_set_client=binary",$conn);
if($conn==FALSE)
{
echo"<center>伺服器連接失敗!<br>請刷新後重試。</center>";
returntrue;
}
$databasename="database";//資料庫名稱
do
{
$con=mysql_select_db($databasename,$conn);
}while(!$con);
if($con==FALSE)
{
echo"<center>打開資料庫失敗!<br>請刷新後重試。</center>";
returntrue;
}
?>
2.upload.php
<?php
if($_GET['action']=="save"){
include_once('conn.php');
include_once('uploadclass.php');
$title=$_POST['title'];
$pic=$uploadfile;
if($title=="")
echo"<Script>window.alert('對不起!你輸入的信息不完整!');history.back()</Script>";
$sql="insertintoupload(title,pic)values('$title','$pic')";
$result=mysql_query($sql,$conn);
//echo"<Script>window.alert('信息添加成功');location.href='upload.php'</Script>";
}
?>
<html>
<head>
<title>文件上傳實例</title>
</head>
<body>
<formmethod="post"action="?action=save"enctype="multipart/form-data">
<tableborder=0cellspacing=0cellpadding=0align=centerwidth="100%">
<tr>
<tdwidth=55height=20align="center"></TD>
<tdheight="16">
<tablewidth="48%"height="93"border="0"cellpadding="0"cellspacing="0">
<tr>
<td>標題:</td>
<td><inputname="title"type="text"id="title"></td>
</tr>
<tr>
<td>文件:</td>
<td><label>
<inputname="file"type="file"value="瀏覽">
<inputtype="hidden"name="MAX_FILE_SIZE"value="2000000">
</label></td>
</tr>
<tr>
<td></td>
<td><inputtype="submit"value="上傳"name="upload"></td>
</tr>
</table></td>
</tr>
</table>
</form>
</body>
</html>
3.uploadclass.php
<?php
$uploaddir="upfiles/";//設置文件保存目錄注意包含/
$type=array("jpg","gif","bmp","jpeg","png");//設置允許上傳文件的類型
$patch="upload/";//程序所在路徑
//獲取文件後綴名函數
functionfileext($filename)
{
returnsubstr(strrchr($filename,'.'),1);
}
//生成隨機文件名函數
functionrandom($length)
{
$hash='CR-';
$chars='';
$max=strlen($chars)-1;
mt_srand((double)microtime()*1000000);
for($i=0;$i<$length;$i++)
{
$hash.=$chars[mt_rand(0,$max)];
}
return$hash;
}
$a=strtolower(fileext($_FILES['file']['name']));
//判斷文件類型
if(!in_array(strtolower(fileext($_FILES['file']['name'])),$type))
{
$text=implode(",",$type);
echo"您只能上傳以下類型文件:",$text,"<br>";
}
//生成目標文件的文件名
else{
$filename=explode(".",$_FILES['file']['name']);
do
{
$filename[0]=random(10);//設置隨機數長度
$name=implode(".",$filename);
//$name1=$name.".Mcncc";
$uploadfile=$uploaddir.$name;
}
while(file_exists($uploadfile));
if(move_uploaded_file($_FILES['file']['tmp_name'],$uploadfile))
{
if(is_uploaded_file($_FILES['file']['tmp_name']))
{
echo"上傳失敗!";
}
else
{//輸出圖片預覽
echo"<center>您的文件已經上傳完畢上傳圖片預覽:</center><br><center><imgsrc='$uploadfile'></center>";
echo"<br><center><ahref='upload.htm'>繼續上傳</a></center>";
}
}
}
?>