PHP.EE FOORUM   
Nimi:   Pass:   Mäleta mind! 
   Teemad | php.ee esilehele | registreeri | Märgi kõik teemad loetuks | #php.ee Skype vestlus | RSS
UUS TEEMA  OTSI  Lehekülgi: 1
docx avamine wordiga
Postitaja: scartyx 2013-10-03 14:45:48
hetkel selline jama, et veebilehel on lingid, kust saab alla laadida sinna lisatud faile. pdf ja doc avanevad ilusasti (üks siis adobe raderis ja teine wordis) aga docx avaneb hieroglüüfidena. Seega vaja abi, et kudas sundida veebilehte docx puhul avama save as/open akna või avama teda kohe wordis.
RE: docx avamine wordiga
Postitaja: ise php 2013-10-03 20:41:25
Viskad väljastamisele headeri ette, siis küsib, kas tahad salvestada või avada ja saad valida millega. Midagi taolist peaks olema.


PHP kood:
 
$exi
="docx";
header('Content-type: application/'.$exi);
header('Content-Disposition: attachment; filename="proov.docx"');
readfile("proov.docx");
RE: docx avamine wordiga
Postitaja: scartyx 2013-10-04 12:09:29
sellise asja ma mõtlesin ise ka välja aga mul see jama, et kui selle koodi lisan, siis ta leheküljele enam ei lähe vaid üritab seda lehte salvestada nt. proov.docx kujul
RE: docx avamine wordiga
Postitaja: ise php 2013-10-04 19:22:32
seda koodi sa ei lisa lehele, sellest teed eraldi faili, millele suunad, et oma proov.docx alla laadida. Ei tee päris sellist vaid saadad oma dokumendi aadressi sellele failile, kui universaalset ei taha, paned $exi konstandina nagu praegust ja sinna, kus on praegust proov.docx paned oma saadetud failinime, kui tahad universaalse teha, siis leiad esmalt faililaiendi järgi, milline header saata.
Midagi nii ehk.


download.php

PHP kood:
 
<?php
$sourceFile
="failid/".$_GET['url'];
//*************************Leiab faili laiendi*****************
$f=$_GET['url'];
$kontrol=0;
$osa="";
$exi="";
for(
$ik=1;$ik<20;$ik++)
{
$osa substr($f,$ik 1);
if (
$kontrol==1)
{
$exi=$exi.$osa;} 
if (
$osa==".")
{
$kontrol=1;}
}
$exi=strtolower($exi); 
//*********************************************
header('Content-type: application/'.$exi);
header('Content-Disposition: attachment; filename="'.$sourceFile.'"');
readfile($sourceFile);
?>


Ja lingi oma failile teed nüüd sellise

<a href="download.php?url=proov.docx">proov.docx</a>
RE: docx avamine wordiga
Postitaja: ise php 2013-10-04 19:28:30
Viskasin ühe vana vana koodi siia ja nüüd vaatan, et suht rumal lahendus tehtud. Selle 20 asemel peaksid panema stringi pikkuse.

for($ik=1;$ik<strlen($f);$ik++)
RE: docx avamine wordiga
Postitaja: blaa 2013-10-05 00:30:59
TSITEERITUD:
Viskasin ühe vana vana koodi siia ja nüüd vaatan, et suht rumal lahendus tehtud. Selle 20 asemel peaksid panema stringi pikkuse.

pathinfo() on vist nõrkadele.
Isegi explode oleks elegantsem, kui stringide jupitamine tsüklis.

Ma loodan, et see vana kood on sul vaid koduseks kasutamiseks. Kui on avalikus veebis, siis on küll pahasti.
RE: docx avamine wordiga
Postitaja: scartyx 2013-10-08 14:37:54
tänud abi eest aga miks kõik peab php puhul nii keeruline olema, kui tahad ühte lihtsat asja teha...kõik teised failid välja arvatud docx avab ta juba praegu save as aknas...kas äkki saaks mingi valemiga toppida sinna download linki miski koodijupi..hetkel kood selline:

tr>
<td><a href="./failid/<?php echo ($kaust); ?>/<?php echo $tulem['failinimi']; ?>" target="_blank"><?php echo $tulem['failinimi']; ?></a>
</td>
RE: docx avamine wordiga
Postitaja: ise php 2013-10-08 18:03:16
Asi kunni browseris, ta arvab, et oskab selle failiga midagi tarka teha ja teeb, ei küsi kasutaja käest üle, mida teha. Seda ei saa sa kuidagi html abil muuta ehk kuidagi iga kliendi arvutist aga see ei tuleks ju kõne allagi.
Ja ega see link eriti keerulisem ei tulekski ju. Sa ise kirjutad ta keeruliseks ja segaseks.
Kusjuures selle faili tee, kui see on alati sama kaust v]id sealt lingist juba välja võtta ning sinna teise faili konstandina panna.

PHP kood:
 
<?php
echo '<a href="download.php?url=./failid/'.$kaust.$tulem['failinimi'].'" target="_blank">'.$tulem['failinimi'].'</a>';
?>
RE: docx avamine wordiga
Postitaja: ise php 2013-10-08 18:32:22
http://hackworthy.blogspot.com/2012/05/savedownload-data-gen
vat see on hoopis keeruline lähenemine asjale.
RE: docx avamine wordiga
Postitaja: scartyx 2013-10-15 09:12:05
see kood ei muutnud sisuliselt midagi, teised failid avatakse save as (doc, pdf) aknas, nagu juba varem, aga docx nüüd salvestab faili automaatselt ja lisaks veel rikub faili ära...lisab nime algusesse failid_ ja kuidagi rikub faili enda headeri, sest avamisel office ütleb et fail corrupt ja kas tahad parandada :(
RE: docx avamine wordiga
Postitaja: blaa 2013-10-15 10:09:49
header('Content-Description: File Transfer');
header('Cache-Control: public, must-revalidate, max-age=0');
header('Pragma: public');
header('Expires: Sat, 26 Jul 1997 05:00:00 GMT');
header('Last-Modified: '.gmdate('D, d M Y H:i:s', time()).' GMT');
header('Cache-Control: private', false);
header('Content-Type: application/force-download');
header('Content-Type: application/octet-stream', false);
header('Content-Type: application/download', false);
header('Content-Disposition: attachment; filename="'.(strstr($_SERVER['HTTP_USER_AGENT'], 'MSIE') ? urlencode($file_name) : $file_name).'";');
header('Content-Transfer-Encoding: binary');
header('Content-Length: '.filesize($file));

readfile($file);

die;

Leheküljed: 1

©2002-2013 Martin Rebane & PHP.ee kaasautorid
  0.425185918808