Šta je novo?

Fiel upload - problem

ivanprobgd

Poštovan
Učlanjen(a)
21.07.2015
Poruke
5
Poena
51
Pozdrav,

da li je neko raspolozen da mi pomogne oko koda za file upload?

Sa ovim kodom kada dodam fajil, u tabeli za pregled dobijem samo ime fajla bez linka za pregled

Sta mi nedostaje?

Hvala



add.php

<?php
require_once("dbcontroller.php");
$db_handle = new DBController();
if(!empty($_POST["submit"])) {
$result = mysql_query("INSERT INTO user(ime, prezime, email, adresa, grad, file) VALUES('".$_POST["ime"]."','".$_POST["prezime"]."','".$_POST["email"]."','".$_POST["adresa"]."','".$_POST["grad"]."','".$_POST["file"]."')");
if(!$result){
$message="Problem in Adding to database. Please Retry.";
} else {
header("Location:index.php");
}
}
?>
<link href="style.css" type="text/css" rel="stylesheet" />
<script src="https://code.jquery.com/jquery-2.1.1.min.js" type="text/javascript"></script>
<script>
function validate() {
var valid = true;
$(".demoInputBox").css('background-color','');
$(".info").html('');

if(!$("#ime").val()) {
$("#ime-info").html("(required)");
$("#ime").css('background-color','#FFFFDF');
valid = false;
}
if(!$("#prezime").val()) {
$("#prezime-info").html("(required)");
$("#prezime").css('background-color','#FFFFDF');
valid = false;
}
if(!$("#email").val()) {
$("#email-info").html("(required)");
$("#email").css('background-color','#FFFFDF');
valid = false;
}
if(!$("#adresa").val()) {
$("#adresa-info").html("(required)");
$("#adresa").css('background-color','#FFFFDF');
valid = false;
}
if(!$("#grad").val()) {
$("#grad-info").html("(required)");
$("#grad").css('background-color','#FFFFDF');
valid = false;
}
if(!$("#file").val()) {
$("#file-info").html("(required)");
$("#file").css('background-color','#FFFFDF');
valid = false;
}
return valid;
}
</script>
<form name="frmToy" method="post" action="" id="frmToy" onClick="return validate();">
<div id="mail-status"></div>
<div>
<label style="padding-top:20px;">Ime</label>
<span id="ime-info" class="info"></span><br/>
<input type="text" name="ime" id="ime" class="demoInputBox">
</div>
<div>
<label>Prezime</label>
<span id="prezime-info" class="info"></span><br/>
<input type="text" name="prezime" id="prezime" class="demoInputBox">
</div>
<div>
<label>E-mail</label>
<span id="email-info" class="info"></span><br/>
<input type="text" name="email" id="email" class="demoInputBox">
</div>
<div>
<label>Adresa</label>
<span id="adresa-info" class="info"></span><br/>
<input type="text" name="adresa" id="adresa" class="demoInputBox">
</div>
<div>
<label>Grad</label>
<span id="grad-info" class="info"></span><br/>
<input type="text" name="grad" id="grad" class="demoInputBox">
</div>
<div>
<label>File (pdf, doc, docx, xcl, xclx, jpg, png, gif)</label>
<span id="file-info" class="info"></span><br/>
<input type="file" name="file" id="file" class="demoInputBox">
</div>

<div>
<input type="submit" name="submit" id="btnAddAction" value="Add" />
</div>



index.php

<?php
foreach($result as $k=>$v) {
if(is_numeric($k)) {
?>
<tr>
<td><?php echo $result[$k]["datum_prijave"]; ?></td>
<td><?php echo $result[$k]["ime"]; ?></td>
<td><?php echo $result[$k]["prezime"]; ?></td>
<td><?php echo $result[$k]["email"]; ?></td>
<td><?php echo $result[$k]["adresa"]; ?></td>
<td><?php echo $result[$k]["grad"]; ?></td>
<td><?php echo $result[$k]["file"]; ?></td>

</tr>
<?php
}
}
if(isset($result["perpage"])) {
?>
<tr>
<td colspan="6" align=right> <?php echo $result["perpage"]; ?></td>
</tr>
<?php } ?>
 
Postavi kod na pastebin.com, lakše je za čitanje 😉
 
Ti si u bazu strpao samo ime fajla, tako da treba da kada štampaš tabelu napraviš link do istog.

Ovde ne vidim skriptu za upload, ali umesto

<td><?php echo $result[$k]["file"]; ?></td>

treba ti nešto ovako

<td><a href='lokacijaGdeJeFajl/' . <?php echo $result[$k]["file"]; ?> . ''><?php echo $result[$k]["file"]; ?></a></td>
 
Ti si u bazu strpao samo ime fajla, tako da treba da kada štampaš tabelu napraviš link do istog.

Ovde ne vidim skriptu za upload, ali umesto

<td><?php echo $result[$k]["file"]; ?></td>

treba ti nešto ovako

<td><a href='lokacijaGdeJeFajl/' . <?php echo $result[$k]["file"]; ?> . ''><?php echo $result[$k]["file"]; ?></a></td>


Evo ga ceo kod sa malim izmenama

add.php

<?php header("Content-type: text/html; charset=utf-8"); ?>
<?php
require_once("dbcontroller.php");
$db_handle = new DBController();
if(!empty($_POST["submit"])) {
$result = mysql_query("INSERT INTO user(ime, prezime, pol, email, adresa, grad, posao, file) VALUES('".$_POST["ime"]."','".$_POST["prezime"]."','".$_POST["pol"]."','".$_POST["email"]."','".$_POST["adresa"]."','".$_POST["grad"]."','".$_POST["posao"]."','".$_FILES["file"]["name"]."')");


//This is the directory where images will be saved
$target = "file/";
$target = $target . basename( $_FILES["file"]["name"]);
//Writes the photo to the server
if(move_uploaded_file($_FILES["file"]["tmp_name"], $target))
{

//Tells you if its all ok
echo "The file ". basename( $_FILES["uploadedfile"]["name"]). " has been uploaded, and your information has been added to the directory";
}
else {

//Gives and error if its not
echo "Sorry, there was a problem uploading your file.";
}


if(!$result){
$message="Problem in Adding to database. Please Retry.";
} else {
header("Location:hvala.php");
}
}
?>
<link href="style.css" type="text/css" rel="stylesheet" />
<!-- <script src="https://code.jquery.com/jquery-2.1.1.min.js" type="text/javascript"></script>
<script>
function validate() {
var valid = true;
$(".demoInputBox").css('background-color','');
$(".info").html('');

if(!$("#ime").val()) {
$("#ime-info").html("(required)");
$("#ime").css('background-color','#FFFFDF');
valid = false;
}
if(!$("#prezime").val()) {
$("#prezime-info").html("(required)");
$("#prezime").css('background-color','#FFFFDF');
valid = false;
}
if(!$("#pol").val()) {
$("#pol-info").html("(required)");
$("#pol").css('background-color','#FFFFDF');
valid = false;
}
if(!$("#email").val()) {
$("#email-info").html("(required)");
$("#email").css('background-color','#FFFFDF');
valid = false;
}
if(!$("#adresa").val()) {
$("#adresa-info").html("(required)");
$("#adresa").css('background-color','#FFFFDF');
valid = false;
}
if(!$("#grad").val()) {
$("#grad-info").html("(required)");
$("#grad").css('background-color','#FFFFDF');
valid = false;
}
if(!$("#file").val()) {
$("#file-info").html("(required)");
$("#file").css('background-color','#FFFFDF');
valid = false;
}
return valid;
}
</script> -->
<form name="frmToy" method="post" action="" enctype="multipart/form-data" id="frmToy" onClick="return validate();">
<div id="mail-status"></div>
<div>
<label style="padding-top:20px;">Ime</label>
<span id="ime-info" class="info"></span><br/>
<input type="text" name="ime" id="ime" class="demoInputBoxAdd">
</div>
<div>
<label>Prezime</label>
<span id="prezime-info" class="info"></span><br/>
<input type="text" name="prezime" id="prezime" class="demoInputBoxAdd">
</div>
<div>
<label>Pol</label>
<span id="pol-info" class="info"></span><br/>
<input type="radio" name="pol" <?php if (isset($pol) && $gender=="musko") echo "checked";?> value="Muško">Muško
<input type="radio" name="pol" <?php if (isset($pol) && $gender=="zensko") echo "checked";?> value="Žensko">Žensko
</div>
<div>
<label>E-mail</label>
<span id="email-info" class="info"></span><br/>
<input type="text" name="email" id="email" class="demoInputBoxAdd">
</div>
<div>
<label>Adresa</label>
<span id="adresa-info" class="info"></span><br/>
<input type="text" name="adresa" id="adresa" class="demoInputBoxAdd">
</div>
<div>
<label>Grad</label>
<span id="grad-info" class="info"></span><br/>
<input type="text" name="grad" id="grad" class="demoInputBoxAdd">
</div>


<div>
<label>Posao</label>
<select id="posao" name="posao" >
<option value="">Izaberi ...</option>
<option value="posao 1">posao 1</option>
<option value="posao 2">posao 2</option>
<option value="posao 3">posao 3</option>
<option value="posao 4">posao 4</option>
</select>
</div>


<div>
<label>CV</label>
<span id="file-info" class="info"></span><br/>
<input type="hidden" name="MAX_FILE_SIZE" value="100">
<input type="file" name="file" id="file" class="demoInputBoxAddS">
</div>
<div>
<input type="submit" name="submit" id="btnAddAction" value="Add" />
</div>



index.php

<?php header("Content-type: text/html; charset=utf-8"); ?>
<?php
require_once("perpage.php");
require_once("dbcontroller.php");
$db_handle = new DBController();

$ime = "";
$prezime = "";
$email = "";
$adresa = "";

$queryCondition = "";
if(!empty($_POST["search"])) {
foreach($_POST["search"] as $k=>$v){
if(!empty($v)) {

$queryCases = array("ime","prezime","email","adresa");
if(in_array($k,$queryCases)) {
if(!empty($queryCondition)) {
$queryCondition .= " AND ";
} else {
$queryCondition .= " WHERE ";
}
}
switch($k) {
case "ime":
$ime = $v;
$queryCondition .= "ime LIKE '" . $v . "%'";
break;
case "prezime":
$prezime = $v;
$queryCondition .= "prezime LIKE '" . $v . "%'";
break;
case "email":
$email = $v;
$queryCondition .= "email LIKE '" . $v . "%'";
break;
case "adresa":
$adresa = $v;
$queryCondition .= "adresa LIKE '" . $v . "%'";
break;
}
}
}
}
$orderby = " ORDER BY id desc";
$sql = "SELECT * FROM user " . $queryCondition;
$href = 'index.php';

$perPage = 20;
$page = 1;
if(isset($_POST['page'])){
$page = $_POST['page'];
}
$start = ($page-1)*$perPage;
if($start < 0) $start = 0;

$query = $sql . $orderby . " limit " . $start . "," . $perPage;
$result = $db_handle->runQuery($query);

if(!empty($result)) {
$result["perpage"] = showperpage($sql, $perPage, $href);
}
?>
<html>
<head>
<title>PHP CRUD with Search and Pagination</title>
<link href="style.css" type="text/css" rel="stylesheet" />
</head>
<body>
<h2>PHP CRUD with Search and Pagination</h2>
<div style="text-align:right;margin:20px 0px 10px;">
<a id="btnAddAction" href="add.php">Add New</a>
</div>
<div id="toys-grid">
<form name="frmSearch" method="post" enctype="multipart/form-data" action="index.php">
<div class="search-box">
<p><input type="text" placeholder="Ime" name="search[ime]" class="demoInputBox" value="<?php echo $ime; ?>" /><input type="text" placeholder="Prezime" name="search[prezime]" class="demoInputBox" value="<?php echo $prezime; ?>" /><input type="text" placeholder="E-mail" name="search" class="demoInputBox" value="<?php echo $email; ?>" /><input type="text" placeholder="Adresa" name="search[adresa]" class="demoInputBox" value="<?php echo $adresa; ?>" /><input type="submit" name="go" class="btnSearch" value="Search"><input type="reset" class="btnSearch" value="Reset" onClick="window.location='index.php'"></p>
</div>

<table cellpadding="10" cellspacing="1">
<thead>
<tr>
<th><strong>Datum prijave</strong></th>
<th><strong>Ime</strong></th>
<th><strong>Prezime</strong></th>
<th><strong>Pol</strong></th>
<th><strong>E-mail</strong></th>
<th><strong>Adresa</strong></th>
<th><strong>Grad</strong></th>
<th><strong>Posao</strong></th>
<th><strong>CV</strong></th>


</tr>
</thead>



<tbody>
<?php

foreach($result as $k=>$v) {
if(is_numeric($k)) {
?>
<tr>
<td><?php echo $result[$k]["datum_prijave"]; ?></td>
<td><?php echo $result[$k]["ime"]; ?></td>
<td><?php echo $result[$k]["prezime"]; ?></td>
<td><?php echo $result[$k]["pol"]; ?></td>
<td><?php echo $result[$k]["email"]; ?></td>
<td><?php echo $result[$k]["adresa"]; ?></td>
<td><?php echo $result[$k]["grad"]; ?></td>
<td><?php echo $result[$k]["posao"]; ?></td>
<td><?php echo $result[$k]["file"]; ?></td>

</tr>
<?php
}
}
if(isset($result["perpage"])) {
?>
<tr>
<td colspan="6" align=right> <?php echo $result["perpage"]; ?></td>
</tr>
<?php } ?>
<tbody>
</table>
</form>
</div>
</body>
</html>
<td colspan="6" align=right> <?php echo $result["perpage"]; ?></td>
</tr>
<?php } ?>
 
Ti si u bazu strpao samo ime fajla, tako da treba da kada štampaš tabelu napraviš link do istog.

Ovde ne vidim skriptu za upload, ali umesto

<td><?php echo $result[$k]["file"]; ?></td>

treba ti nešto ovako

<td><a href='lokacijaGdeJeFajl/' . <?php echo $result[$k]["file"]; ?> . ''><?php echo $result[$k]["file"]; ?></a></td>


Ovaj kod koji si mi napisao ipak radi jednim delom🙂

U tabeli dobijem ime fajla sa linkom prema folderu gde se nalazi: http://prntscr.com/7vd6f8

Kada kliknem otvara mi: http://prntscr.com/7vd62g
 
Ti si u bazu strpao samo ime fajla, tako da treba da kada štampaš tabelu napraviš link do istog.

Ovde ne vidim skriptu za upload, ali umesto

<td><?php echo $result[$k]["file"]; ?></td>

treba ti nešto ovako

<td><a href='lokacijaGdeJeFajl/' . <?php echo $result[$k]["file"]; ?> . ''><?php echo $result[$k]["file"]; ?></a></td>

Namestio sam 🙂
HVALA na sugestiji i pomoci !

<td><a href='file/<?php echo $result[$k]["file"]; ?>'><?php echo $result[$k]["file"]; ?></a></td>
 
Da, moja greška. Nema potrebe za konkatenacijom kada se ubacuje php kod u html.
Ne pamtim kada sam kucao raw php, pa se zezno, ali skontao si svakako rešenje. :wave:
 
Ne znam u kom trenutku ljudi obično počnu da uče i brinu o tome, ali bi mogao da proguglaš: SQL injection, stored XSS, Unrestricted File Upload, ...
 
Nazad
Vrh Dno